Ignore:
Timestamp:
2011-12-29T00:02:22+01:00 (13 years ago)
Author:
oliverw
Message:

Bugfix #7169: Added option to ignore post codes.

Location:
applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPlugin.java

    r25373 r27338  
    1717import org.openstreetmap.josm.gui.IconToggleButton;
    1818import org.openstreetmap.josm.gui.MapFrame;
     19import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    1920import org.openstreetmap.josm.plugins.Plugin;
    2021import org.openstreetmap.josm.plugins.PluginInformation;
     
    6667        }
    6768
    68 
     69        @Override
     70        public PreferenceSetting getPreferenceSetting() {
     71                // TODO Auto-generated method stub
     72                return getPreferences();
     73        }
    6974
    7075        /**
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/FixAddressesPreferences.java

    r25373 r27338  
    1414package org.openstreetmap.josm.plugins.fixAddresses;
    1515
     16import javax.swing.ButtonGroup;
     17import javax.swing.JCheckBox;
     18
     19import org.openstreetmap.josm.Main;
    1620import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
    1721import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
    1822import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
     23import static org.openstreetmap.josm.tools.I18n.tr;
    1924
    20 // TODO: Implement
    2125public class FixAddressesPreferences implements PreferenceSetting {
    22         private boolean selectGuessedObjects = false;
     26        private static final String FIX_ADDRESSES_IGNORE_POST_CODE_KEY = "fixAddresses.ignorePostCode";
     27        private static final String FIX_ADDRESSES_SELECT_GUESSED_OBJECTS_KEY = "fixAddresses.selectGuessedObjects";
     28       
     29        private JCheckBox cbSelectGuessedObjects = new JCheckBox(tr("Include objects used for guesses"));
     30        private JCheckBox cbIgnorePostCode = new JCheckBox();
    2331
     32        /**
     33         * Internal factory class. Call <code>FixAddressesPreferences.Factory().createPreferenceSetting()</code> to
     34         * create the preference setting instance.
     35         */
    2436        public static class Factory implements PreferenceSettingFactory {
    2537                public PreferenceSetting createPreferenceSetting() {
     
    2739                }
    2840        }
     41       
     42        /**
     43         * Internal constructor.
     44         */
     45        private FixAddressesPreferences() {
     46                loadFromPrefs();
     47        }
     48       
     49        /**
     50         * Loads the (initial) preference settings.
     51         */
     52        private void loadFromPrefs() {
     53                @SuppressWarnings("unused")
     54                boolean test = Main.pref.getBoolean(FIX_ADDRESSES_IGNORE_POST_CODE_KEY, false);
     55                setSelectGuessedObjects(Main.pref.getBoolean(FIX_ADDRESSES_SELECT_GUESSED_OBJECTS_KEY, false));
     56                setIgnorePostCode(Main.pref.getBoolean(FIX_ADDRESSES_IGNORE_POST_CODE_KEY, false));
     57        }
     58       
     59        /**
     60         * Save the preference settings.
     61         */
     62        private void saveToPrefs() {
     63                Main.pref.put(FIX_ADDRESSES_SELECT_GUESSED_OBJECTS_KEY, isSelectGuessedObjects());
     64                Main.pref.put(FIX_ADDRESSES_IGNORE_POST_CODE_KEY, isIgnorePostCode());
     65        }
    2966
     67        /* (non-Javadoc)
     68         * @see org.openstreetmap.josm.gui.preferences.PreferenceSetting#addGui(org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane)
     69         */
    3070        @Override
    3171        public void addGui(PreferenceTabbedPane gui) {
    32                 // TODO Auto-generated method stub
    33 
     72                // Import settings
     73        ButtonGroup fixAddrOptions = new ButtonGroup();
     74        fixAddrOptions.add(cbSelectGuessedObjects);
     75        fixAddrOptions.add(cbIgnorePostCode);
    3476        }
    3577
     78        /* (non-Javadoc)
     79         * @see org.openstreetmap.josm.gui.preferences.PreferenceSetting#ok()
     80         */
    3681        @Override
    3782        public boolean ok() {
    38                 // TODO Auto-generated method stub
    39                 return false;
     83                saveToPrefs();
     84                return true;
    4085        }
    4186
     
    4893         */
    4994        public boolean isSelectGuessedObjects() {
    50                 return selectGuessedObjects;
     95                return cbSelectGuessedObjects.isSelected();
    5196        }
    5297
     
    57102         */
    58103        void setSelectGuessedObjects(boolean selectGuessedObjects) {
    59                 this.selectGuessedObjects = selectGuessedObjects;
     104                cbSelectGuessedObjects.setSelected(selectGuessedObjects);
    60105        }
    61106
     107        /**
     108         * Checks if invalid post codes should be ignored. If yes, post codes are neither
     109         * checked for existence nor for correctness.
     110         * @return
     111         */
     112        public boolean isIgnorePostCode() {
     113                return cbIgnorePostCode.isSelected();
     114        }
    62115
     116        public void setIgnorePostCode(boolean ignorePostCode) {
     117                cbIgnorePostCode.setSelected(ignorePostCode);
     118        }
    63119
    64120}
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java

    r27326 r27338  
    6767        public boolean isComplete() {
    6868                boolean isComplete =    hasCity() &&
    69                                                                 hasHouseNumber() &&
    70                                                                 (hasPostalCode() &&
    71                                                                 PostalCodeChecker.hasValidPostalCode(this)) &&
     69                                                                hasHouseNumber() &&                                                             
    7270                                                                hasCity() &&
    7371                                                                hasStreetName();
     
    7674                if (TagUtils.isStateRequired()) {
    7775                        isComplete = isComplete && hasState();
     76                }
     77               
     78                // Check, if user checked "ignore post code"
     79                if (!FixAddressesPlugin.getPreferences().isIgnorePostCode()) {
     80                        isComplete = isComplete  &&
     81                                        hasPostalCode() &&
     82                                        PostalCodeChecker.hasValidPostalCode(this);
    7883                }
    7984
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/TagUtils.java

    r25373 r27338  
    19541954                return relMember != null && STREET_RELATION_ROLE.equals(relMember.getRole());
    19551955        }
    1956 
    1957 
    19581956
    19591957        /**
Note: See TracChangeset for help on using the changeset viewer.