Changeset 6388 in osm for applications/editors


Ignore:
Timestamp:
2008-01-14T19:38:29+01:00 (17 years ago)
Author:
gabriel
Message:

Validator plugin: Preference sanity

Location:
applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/OSMValidatorPlugin.java

    r6386 r6388  
    6464        {
    6565                PreferenceEditor.importOldPreferences();
    66         initializeTests( getAllTests() );
     66        initializeTests( getTests() );
    6767        }
    6868       
     
    129129                        }
    130130                }
     131                applyPrefs(tests, false);
     132                applyPrefs(tests, true);
    131133                return tests;
    132134        }
    133135
    134         /** Gets a collection of all tests. */
    135         public static Collection<Test> getAllTests() {
    136                 return getAllTestsMap().values();
    137         }
    138 
    139         /**
    140          * Gets a collection with the available tests
    141          *
    142          * @param enabled if false, don't get enabled tests
    143          * @param enabledBeforeUpload if false, don't get tests enabled before upload
    144          * @return A collection with the available tests
    145          */
    146         public static Collection<Test> getTests(boolean enabled, boolean enabledBeforeUpload)
    147         {
    148                 Set<Test> tests = new HashSet<Test>();
    149                 Map<String, Test> enabledTests = getAllTestsMap();
    150 
     136        private static void applyPrefs(Map<String, Test> tests, boolean beforeUpload) {
    151137                Pattern regexp = Pattern.compile("(\\w+)=(true|false),?");
    152                 Matcher m = regexp.matcher(Main.pref.get(PreferenceEditor.PREF_TESTS));
     138                Matcher m = regexp.matcher(Main.pref.get(beforeUpload
     139                        ? PreferenceEditor.PREF_TESTS_BEFORE_UPLOAD
     140                        : PreferenceEditor.PREF_TESTS));
    153141                int pos = 0;
    154142                while( m.find(pos) )
    155143                {
    156144                        String testName = m.group(1);
    157                         Test test = enabledTests.get(testName);
     145                        Test test = tests.get(testName);
    158146                        if( test != null )
    159147                        {
    160                                 test.enabled = Boolean.valueOf(m.group(2));
    161                                 if( enabled && test.enabled )
    162                                         tests.add(test );
     148                                boolean enabled = Boolean.valueOf(m.group(2));
     149                                System.err.println(beforeUpload + " " + testName + " " + enabled);
     150                                if (beforeUpload) {
     151                                        test.testBeforeUpload = enabled;
     152                                } else {
     153                                        test.enabled = enabled;
     154                                }
    163155                        }
    164156                        pos = m.end();
    165157                }
    166 
    167                 m = regexp.matcher(Main.pref.get( PreferenceEditor.PREF_TESTS_BEFORE_UPLOAD ));
    168                 pos = 0;
    169                 while( m.find(pos) )
    170                 {
    171                         String testName = m.group(1);
    172                         Test test = enabledTests.get(testName);
    173                         if( test != null )
    174                         {
    175                                 test.testBeforeUpload = Boolean.valueOf(m.group(2));
    176                                 if( enabledBeforeUpload && test.testBeforeUpload)
    177                                         tests.add(test );
    178                         }
    179                         pos = m.end();
    180                 }
    181                
    182                 return tests;
    183         }
    184        
     158        }
     159
     160        public static Collection<Test> getTests() {
     161                return getAllTestsMap().values();
     162        }
     163
     164        public static Collection<Test> getEnabledTests(boolean beforeUpload) {
     165                Collection<Test> enabledTests = getTests();
     166                for (Test t : new ArrayList<Test>(enabledTests)) {
     167                        if (beforeUpload ? t.testBeforeUpload : t.enabled) continue;
     168                        enabledTests.remove(t);
     169                }
     170                return enabledTests;
     171        }
     172
    185173    /**
    186174     * Gets the list of all available test classes
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/PreferenceEditor.java

    r4866 r6388  
    4646        testPanel.add( new JLabel(), GBC.std() );
    4747        testPanel.add( new JLabel("On upload"), GBC.eop() );
    48        
    49                 allTests = OSMValidatorPlugin.getAllTests();
     48
     49                allTests = OSMValidatorPlugin.getTests();
    5050                for(Test test: allTests)
    5151                {
    5252            test.addGui(testPanel);
    53             test.setGuiEnabled(test.enabled || test.testBeforeUpload);
    5453                }
    5554               
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/Test.java

    r5583 r6388  
    142142                checkEnabled = new JCheckBox(name, enabled);
    143143                checkEnabled.setToolTipText(description);
    144         checkEnabled.addActionListener(new ActionListener(){
    145             public void actionPerformed(ActionEvent e) {
    146                 setGuiEnabled(checkEnabled.isSelected() || checkBeforeUpload.isSelected() );
    147             }
    148         });
    149144                testPanel.add(checkEnabled, GBC.std().insets(20,0,0,0));
    150145               
    151146        checkBeforeUpload = new JCheckBox();
    152147        checkBeforeUpload.setSelected(testBeforeUpload);
    153         checkBeforeUpload.addActionListener(new ActionListener(){
    154             public void actionPerformed(ActionEvent e) {
    155                 setGuiEnabled(checkEnabled.isSelected() || checkBeforeUpload.isSelected() );
    156             }
    157         });
    158148        testPanel.add(checkBeforeUpload, GBC.eop().insets(20,0,0,0));
    159149        }
    160 
    161     /**
    162      * Enables or disables the test in the preferences gui
    163      * @param enabled
    164      */
    165     public void setGuiEnabled(boolean enabled)
    166     {
    167     }   
    168150
    169151        /**
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidateAction.java

    r4087 r6388  
    5858            return;
    5959       
    60                 Collection<Test> tests = OSMValidatorPlugin.getTests(true, false);
     60                Collection<Test> tests = OSMValidatorPlugin.getEnabledTests(false);
    6161                if( tests.isEmpty() )
    6262                        return;
  • applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/ValidateUploadHook.java

    r4087 r6388  
    3232    public boolean checkUpload(Collection<OsmPrimitive> add, Collection<OsmPrimitive> update, Collection<OsmPrimitive> delete)
    3333    {
    34         Collection<Test> tests = OSMValidatorPlugin.getTests(false, true);
     34        Collection<Test> tests = OSMValidatorPlugin.getEnabledTests(true);
    3535        if( tests.isEmpty() )
    3636            return true;
     
    4343        for(Test test : tests)
    4444        {
    45             if( !test.testBeforeUpload() )
    46                 continue;
    47 
    4845            test.setBeforeUpload(true);
    4946            test.setPartialSelection(true);
Note: See TracChangeset for help on using the changeset viewer.