Changeset 12777 in osm for applications/editors/josm


Ignore:
Timestamp:
2009-01-01T18:22:57+01:00 (16 years ago)
Author:
stoecker
Message:

readded TagChecker, fixed problem with duplicate elements in data, added check for mappaint errors

Location:
applications/editors/josm/plugins/validator
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/validator/build.xml

    r12598 r12777  
    4242        <attribute name="Plugin-Description" value="A OSM data validator"/>
    4343        <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    44         <attribute name="Plugin-Mainversion" value="1180"/>
     44        <attribute name="Plugin-Mainversion" value="1200"/>
    4545        <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    4646        <attribute name="Author" value="Francisco R. Santos"/>
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/OSMValidatorPlugin.java

    r12279 r12777  
    4444import org.openstreetmap.josm.plugins.validator.tests.SelfIntersectingWay;
    4545import org.openstreetmap.josm.plugins.validator.tests.SimilarNamedWays;
     46import org.openstreetmap.josm.plugins.validator.tests.TagChecker;
    4647import org.openstreetmap.josm.plugins.validator.tests.UnclosedWays;
    4748import org.openstreetmap.josm.plugins.validator.tests.UnconnectedWays;
     
    9495            WronglyOrderedWays.class, // ID 1001 .. 1099
    9596            UnclosedWays.class, // ID 1101 .. 1199
     97            TagChecker.class, // ID 1201 .. 1299
    9698            UnconnectedWays.class, // ID 1301 .. 1399
    9799    };
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/PreferenceEditor.java

    r12670 r12777  
    102102                StringBuilder tests = new StringBuilder();
    103103                StringBuilder testsBeforeUpload = new StringBuilder();
     104                Boolean res = false;
    104105
    105106                for (Test test : allTests)
    106107                {
    107                         test.ok();
     108                        if(test.ok())
     109                            res = false;
    108110                        String name = test.getClass().getSimpleName();
    109111                        tests.append( ',' ).append( name ).append( '=' ).append( test.enabled );
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Test.java

    r11530 r12777  
    155155         * Called when the used submits the preferences
    156156         */
    157         public void ok()
     157        public boolean ok()
    158158        {
    159159                enabled = checkEnabled.isSelected();
    160160                testBeforeUpload = checkBeforeUpload.isSelected();
     161                return false;
    161162        }
    162163       
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/TagChecker.java

    r12707 r12777  
    8181        public static final String PREF_CHECK_COMPLEX = PREFIX + ".checkComplex";
    8282        public static final String PREF_CHECK_FIXMES = PREFIX + ".checkFixmes";
     83        public static final String PREF_CHECK_PAINT = PREFIX + ".paint";
    8384
    8485        public static final String PREF_SOURCES = PREFIX + ".sources";
     
    8687        public static final String PREF_USE_SPELL_FILE = PREFIX + ".usespellfile";
    8788
    88         public static final String PREF_CHECK_KEYS_BEFORE_UPLOAD = PREFIX + ".checkKeysBeforeUpload";
    89         public static final String PREF_CHECK_VALUES_BEFORE_UPLOAD = PREFIX + ".checkValuesBeforeUpload";
    90         public static final String PREF_CHECK_COMPLEX_BEFORE_UPLOAD = PREFIX + ".checkComplexBeforeUpload";
    91         public static final String PREF_CHECK_FIXMES_BEFORE_UPLOAD = PREFIX + ".checkFixmesBeforeUpload";
     89        public static final String PREF_CHECK_KEYS_BEFORE_UPLOAD = PREF_CHECK_KEYS + "BeforeUpload";
     90        public static final String PREF_CHECK_VALUES_BEFORE_UPLOAD = PREF_CHECK_VALUES + "BeforeUpload";
     91        public static final String PREF_CHECK_COMPLEX_BEFORE_UPLOAD = PREF_CHECK_COMPLEX + "BeforeUpload";
     92        public static final String PREF_CHECK_FIXMES_BEFORE_UPLOAD = PREF_CHECK_FIXMES + "BeforeUpload";
     93        public static final String PREF_CHECK_PAINT_BEFORE_UPLOAD = PREF_CHECK_PAINT + "BeforeUpload";
    9294
    9395        protected boolean checkKeys = false;
     
    9597        protected boolean checkComplex = false;
    9698        protected boolean checkFixmes = false;
     99        protected boolean checkPaint = false;
    97100
    98101        protected JCheckBox prefCheckKeys;
     
    100103        protected JCheckBox prefCheckComplex;
    101104        protected JCheckBox prefCheckFixmes;
     105        protected JCheckBox prefCheckPaint;
    102106
    103107        protected JCheckBox prefCheckKeysBeforeUpload;
     
    105109        protected JCheckBox prefCheckComplexBeforeUpload;
    106110        protected JCheckBox prefCheckFixmesBeforeUpload;
     111        protected JCheckBox prefCheckPaintBeforeUpload;
    107112
    108113        protected JCheckBox prefUseDataFile;
     
    120125        protected static int INVALID_KEY_SPACE = 1205;
    121126        protected static int INVALID_HTML      = 1206;
     127        protected static int PAINT             = 1207;
    122128        /** 1250 and up is used by tagcheck */
    123129
     
    278284
    279285        @Override
     286        public void visit(Relation n)
     287        {
     288                checkPrimitive(n);
     289        }
     290
     291
     292        @Override
    280293        public void visit(Way w)
    281294        {
     
    305318                        }
    306319                }
     320                if(checkPaint && p.errors != null)
     321                {
     322                        for(String s: p.errors)
     323                        {
     324                                /* passing translated text also to original string, as we already
     325                                translated the stuff before. Makes the ignore file language dependend. */
     326                                errors.add( new TestError(this, Severity.WARNING, tr("Painting problem"),
     327                                s, s, PAINT, p) );
     328                                withErrors.add(p, "P");
     329                        }
     330                }
    307331
    308332                Map<String, String> props = (p.keys == null) ? Collections.<String, String>emptyMap() : p.keys;
     
    383407                if( isBeforeUpload )
    384408                        checkFixmes = checkFixmes && Main.pref.getBoolean(PREF_CHECK_FIXMES_BEFORE_UPLOAD, true);
     409
     410                checkPaint = Main.pref.getBoolean(PREF_CHECK_PAINT, true);
     411                if( isBeforeUpload )
     412                        checkPaint = checkPaint && Main.pref.getBoolean(PREF_CHECK_PAINT_BEFORE_UPLOAD, true);
    385413        }
    386414
     
    520548                testPanel.add(prefCheckFixmesBeforeUpload, a);
    521549
     550                prefCheckPaint = new JCheckBox(tr("Check for paint notes."), Main.pref.getBoolean(PREF_CHECK_PAINT, true));
     551                prefCheckPaint.setToolTipText(tr("Check if map paining found data errors."));
     552                testPanel.add(prefCheckPaint, GBC.std().insets(20,0,0,0));
     553
     554                prefCheckPaintBeforeUpload = new JCheckBox();
     555                prefCheckPaintBeforeUpload.setSelected(Main.pref.getBoolean(PREF_CHECK_PAINT_BEFORE_UPLOAD, true));
     556                testPanel.add(prefCheckPaintBeforeUpload, a);
     557
    522558                prefUseDataFile = new JCheckBox(tr("Use default data file."), Main.pref.getBoolean(PREF_USE_DATA_FILE, true));
    523559                prefUseDataFile.setToolTipText(tr("Use the default data file (recommended)."));
     
    540576
    541577        @Override
    542         public void ok()
     578        public boolean ok()
    543579        {
    544580                enabled = prefCheckKeys.isSelected() || prefCheckValues.isSelected() || prefCheckComplex.isSelected() || prefCheckFixmes.isSelected();
     
    550586                Main.pref.put(PREF_CHECK_KEYS, prefCheckKeys.isSelected());
    551587                Main.pref.put(PREF_CHECK_FIXMES, prefCheckFixmes.isSelected());
     588                Main.pref.put(PREF_CHECK_PAINT, prefCheckPaint.isSelected());
    552589                Main.pref.put(PREF_CHECK_VALUES_BEFORE_UPLOAD, prefCheckValuesBeforeUpload.isSelected());
    553590                Main.pref.put(PREF_CHECK_COMPLEX_BEFORE_UPLOAD, prefCheckComplexBeforeUpload.isSelected());
    554591                Main.pref.put(PREF_CHECK_KEYS_BEFORE_UPLOAD, prefCheckKeysBeforeUpload.isSelected());
    555592                Main.pref.put(PREF_CHECK_FIXMES_BEFORE_UPLOAD, prefCheckFixmesBeforeUpload.isSelected());
     593                Main.pref.put(PREF_CHECK_PAINT_BEFORE_UPLOAD, prefCheckPaintBeforeUpload.isSelected());
    556594                Main.pref.put(PREF_USE_DATA_FILE, prefUseDataFile.isSelected());
    557595                Main.pref.put(PREF_USE_SPELL_FILE, prefUseSpellFile.isSelected());
     
    566604                if(sources.length() == 0)
    567605                        sources = null;
    568                 Main.pref.put(PREF_SOURCES, sources );
     606                return Main.pref.put(PREF_SOURCES, sources);
    569607        }
    570608
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/util/AgregatePrimitivesVisitor.java

    r10519 r12777  
    33import java.util.Collection;
    44import java.util.Comparator;
    5 import java.util.TreeSet;
     5import java.util.LinkedList;
    66
    77import org.openstreetmap.josm.data.osm.*;
     
    2525        public AgregatePrimitivesVisitor()
    2626        {
    27                 aggregatedData = new TreeSet<OsmPrimitive>( new PrimitiveComparator());
     27                aggregatedData = new LinkedList<OsmPrimitive>();
    2828        }
    2929
     
    4545        public void visit(Node n)
    4646        {
    47                 aggregatedData.add(n);
     47                if(!aggregatedData.contains(n))
     48                        aggregatedData.add(n);
    4849        }
    4950
    5051        public void visit(Way w)
    5152        {
    52                 aggregatedData.add(w);
    53                 for (Node n : w.nodes)
    54                         visit(n);
     53                if(!aggregatedData.contains(w))
     54                {
     55                        aggregatedData.add(w);
     56                        for (Node n : w.nodes)
     57                                visit(n);
     58                }
    5559        }
    5660
    5761        public void visit(Relation r) {
    58                 // Relations can be cyclic so don't visit them twice.
    5962                if (!aggregatedData.contains(r)) {
    6063                        aggregatedData.add(r);
     
    6467                }
    6568        }
    66 
    67         /**
    68          * A comparator that orders nodes first, ways last.
    69          *
    70          * @author frsantos
    71          */
    72         class PrimitiveComparator implements Comparator<OsmPrimitive>
    73         {
    74                 public int compare(OsmPrimitive o1, OsmPrimitive o2)
    75                 {
    76                         if( o1 instanceof Node)
    77                         {
    78                                 return o2 instanceof Node ? o1.hashCode() - o2.hashCode() : -1;
    79                         }
    80                         else if( o1 instanceof Way)
    81                         {
    82                                 return o2 instanceof Way ? o1.hashCode() - o2.hashCode() : 1;
    83                         } else {
    84                                 return o1.hashCode() - o2.hashCode();
    85                         }
    86                 }
    87         }
    8869}
Note: See TracChangeset for help on using the changeset viewer.