Changeset 24209 in osm for applications


Ignore:
Timestamp:
2010-11-12T23:06:37+01:00 (14 years ago)
Author:
oliverw
Message:

Remember also the OSM object of the guess.

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

Legend:

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

    r24165 r24209  
    4848        private boolean cancelled;
    4949       
    50         /**
    51          * @param nodes
    52          */
    53         public GuessAddressRunnable(List<OSMAddress> nodes, String title) {
     50       
     51        /**
     52         * Instantiates a new guess address runnable.
     53         *
     54         * @param addresses the addresses to guess the values for
     55         * @param title the title of progress monitor
     56         */
     57        public GuessAddressRunnable(List<OSMAddress> addresses, String title) {
    5458                super(title != null ? title : tr("Searching"));
    55                 setAddressEditContainer(nodes);         
    56         }
    57 
     59                setAddressEditContainer(addresses);             
     60        }
     61
     62        /**
     63         * Sets the address edit container.
     64         *
     65         * @param nodes the new address edit container
     66         */
    5867        public void setAddressEditContainer(List<OSMAddress> nodes) {
    5968                if (isRunning) {
     
    6372        }
    6473
     74        /**
     75         * Gets the addresses to guess.
     76         *
     77         * @return the addresses to guess
     78         */
    6579        public List<OSMAddress> getAddressesToGuess() {
    6680                return addressesToGuess;
     
    91105        }
    92106
     107        /**
     108         * Fires the 'finished' event after the thread has done his work.
     109         */
    93110        protected void fireFinished() {
    94111                for (IProgressMonitorFinishedListener l : finishListeners) {
     
    262279                                        minDist = dist;
    263280                                        currentValue = TagUtils.getNameValue(w);                               
    264                                         aNode.setGuessedValue(getTag(), currentValue);
     281                                        aNode.setGuessedValue(getTag(), currentValue, w);
    265282                                } else {
    266283                                        //System.out.println(String.format("Skipped %s: %4.2f m", TagUtils.getNameValue(w), dist));
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/GuessedValueHandler.java

    r24091 r24209  
    143143                                minDist = dist;
    144144                                currentValue = n.get(tag);                     
    145                                 aNode.setGuessedValue(tag, currentValue);
     145                                aNode.setGuessedValue(tag, currentValue, n);
    146146                        }
    147147                }
     
    158158                                minDist = dist;
    159159                                currentValue = w.get(tag);                             
    160                                 aNode.setGuessedValue(tag, currentValue);
     160                                aNode.setGuessedValue(tag, currentValue, w);
    161161                        }
    162162                }
  • applications/editors/josm/plugins/FixAddresses/src/org/openstreetmap/josm/plugins/fixAddresses/OSMAddress.java

    r24175 r24209  
    1717
    1818import org.openstreetmap.josm.data.osm.OsmPrimitive;
     19import org.openstreetmap.josm.tools.CheckParameterUtil;
    1920
    2021/**
     
    3031        /** The dictionary containing guessed values. */
    3132        private HashMap<String, String> guessedValues = new HashMap<String, String>();
     33        /** The dictionary containing guessed objects. */
     34        private HashMap<String, OsmPrimitive> guessedObjects = new HashMap<String, OsmPrimitive>();
    3235        /** The dictionary containing indirect values. */
    3336        private HashMap<String, String> derivedValues = new HashMap<String, String>();
     
    116119       
    117120        /**
    118          * Returns the street name guessed by the nearest-neighbour search.
     121         * Returns the street name guessed by the nearest-neighbor search.
    119122         * @return the guessedStreetName
    120123         */
     
    124127
    125128        /**
     129         * Sets the guessed street name.
     130         *
    126131         * @param guessedStreetName the guessedStreetName to set
    127          */
    128         public void setGuessedStreetName(String guessedStreetName) {
    129                 setGuessedValue(TagUtils.ADDR_STREET_TAG, guessedStreetName);
     132         * @param srcObj the source object of the guess.
     133         */
     134        public void setGuessedStreetName(String guessedStreetName, OsmPrimitive srcObj) {
     135                setGuessedValue(TagUtils.ADDR_STREET_TAG, guessedStreetName, srcObj);
    130136        }
    131137       
     
    147153
    148154        /**
     155         * Sets the guessed post code.
     156         *
    149157         * @param guessedPostCode the guessedPostCode to set
    150          */
    151         public void setGuessedPostCode(String guessedPostCode) {
    152                 setGuessedValue(TagUtils.ADDR_POSTCODE_TAG, guessedPostCode);
     158         * @param srcObj srcObj the source object of the guess
     159         */
     160        public void setGuessedPostCode(String guessedPostCode, OsmPrimitive srcObj) {
     161                setGuessedValue(TagUtils.ADDR_POSTCODE_TAG, guessedPostCode, srcObj);
    153162        }
    154163       
     
    170179
    171180        /**
     181         * Sets the guessed city.
     182         *
    172183         * @param guessedCity the guessedCity to set
    173          */
    174         public void setGuessedCity(String guessedCity) {
    175                 setGuessedValue(TagUtils.ADDR_CITY_TAG, guessedCity);
     184         * @param srcObj the source object of the guess
     185         */
     186        public void setGuessedCity(String guessedCity, OsmPrimitive srcObj) {
     187                setGuessedValue(TagUtils.ADDR_CITY_TAG, guessedCity, srcObj);
    176188        }
    177189
     
    203215                        }
    204216                }
     217               
     218                // Clear all guesses
    205219                guessedValues.clear();
     220                guessedObjects.clear();
    206221        }
    207222
     
    404419        /**
    405420         * Gets the guessed value for the given tag.
     421         *
    406422         * @param tag The tag to get the guessed value for.
    407          * @return
     423         * @return the guessed value
    408424         */
    409425        public String getGuessedValue(String tag) {
     426                CheckParameterUtil.ensureParameterNotNull(tag, "tag");
     427               
    410428                if (!hasGuessedValue(tag)) {
    411429                        return null;                   
    412430                }
    413431                return guessedValues.get(tag);
     432        }
     433       
     434        /**
     435         * Gets the guessed object.
     436         *
     437         * @param tag the guessed tag
     438         * @return the object which has been selected for the guess
     439         */
     440        public OsmPrimitive getGuessedObject(String tag) {
     441                CheckParameterUtil.ensureParameterNotNull(tag, "tag");
     442               
     443                if (guessedObjects.containsKey(tag)) {
     444                        return guessedObjects.get(tag);
     445                }
     446                return null;
    414447        }
    415448       
     
    450483         */
    451484        private boolean hasGuessedValue(String tag) {
     485                CheckParameterUtil.ensureParameterNotNull(tag, "tag");
     486               
    452487                return guessedValues.containsKey(tag) &&
    453488                        !StringUtils.isNullOrEmpty(guessedValues.get(tag));
     
    460495         * @param value the value of the guessed tag.
    461496         */
    462         public void setGuessedValue(String tag, String value) {
     497        public void setGuessedValue(String tag, String value, OsmPrimitive osm) {
     498                CheckParameterUtil.ensureParameterNotNull(tag, "tag");
     499                CheckParameterUtil.ensureParameterNotNull(value, "value");
     500                CheckParameterUtil.ensureParameterNotNull(osm, "osm");
     501               
    463502                guessedValues.put(tag, value);
     503                guessedObjects.put(tag, osm);
    464504                fireEntityChanged(this);
    465505        }
     
    472512         */
    473513        private boolean hasDerivedValue(String tag) {
     514                CheckParameterUtil.ensureParameterNotNull(tag, "tag");
     515               
    474516                return derivedValues.containsKey(tag) &&
    475517                        !StringUtils.isNullOrEmpty(derivedValues.get(tag));
Note: See TracChangeset for help on using the changeset viewer.