Ignore:
Timestamp:
2005-10-09T04:14:40+02:00 (19 years ago)
Author:
imi
Message:
  • added Layer support
  • added support for raw GPS data
  • fixed tooltips
  • added options for loading gpx files
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/data/Preferences.java

    r16 r17  
    11package org.openstreetmap.josm.data;
    22
     3import java.beans.PropertyChangeEvent;
     4import java.beans.PropertyChangeListener;
    35import java.io.File;
    46import java.io.FileReader;
     
    3840
    3941
     42        /**
     43         * Whether lines should be drawn between track points of raw gps data.
     44         */
     45        private boolean drawRawGpsLines = false;
    4046        /**
    4147         * Whether nodes on the same place should be considered identical.
     
    100106
    101107                        mergeNodes = root.getChild("mergeNodes") != null;
     108                        drawRawGpsLines = root.getChild("drawRawGpsLines") != null;
    102109                } catch (Exception e) {
    103110                        if (e instanceof PreferencesException)
     
    120127                if (mergeNodes)
    121128                        children.add(new Element("mergeNodes"));
     129                if (drawRawGpsLines)
     130                        children.add(new Element("drawRawGpsLines"));
    122131
    123132                try {
     
    134143       
    135144        /**
    136          * This interface notifies any interested about changes in the projection
    137          * @author imi
    138          */
    139         public interface ProjectionChangeListener {
    140                 void projectionChanged(Projection oldProjection, Projection newProjection);
    141         }
    142         /**
    143145         * The list of all listeners to projection changes.
    144146         */
    145         private Collection<ProjectionChangeListener> listener = new LinkedList<ProjectionChangeListener>();
     147        private Collection<PropertyChangeListener> listener = new LinkedList<PropertyChangeListener>();
    146148        /**
    147149         * Add a listener of projection changes to the list of listeners.
    148150         * @param listener The listerner to add.
    149151         */
    150         public void addProjectionChangeListener(ProjectionChangeListener listener) {
     152        public void addPropertyChangeListener(PropertyChangeListener listener) {
    151153                if (listener != null)
    152154                        this.listener.add(listener);
     
    155157         * Remove the listener from the list.
    156158         */
    157         public void removeProjectionChangeListener(ProjectionChangeListener listener) {
     159        public void removePropertyChangeListener(PropertyChangeListener listener) {
    158160                this.listener.remove(listener);
    159161        }
     162        /**
     163         * Fires a PropertyChangeEvent if the old value differs from the new value.
     164         */
     165        private <T> void firePropertyChanged(String name, T oldValue, T newValue) {
     166                if (oldValue == newValue)
     167                        return;
     168                PropertyChangeEvent evt = null;
     169                for (PropertyChangeListener l : listener) {
     170                        if (evt == null)
     171                                evt = new PropertyChangeEvent(this, name, oldValue, newValue);
     172                        l.propertyChange(evt);
     173                }
     174        }
     175
     176        // getter / setter
     177       
    160178        /**
    161179         * Set the projection and fire an event to all ProjectionChangeListener
     
    165183                Projection old = this.projection;
    166184                this.projection = projection;
    167                 if (old != projection)
    168                         for (ProjectionChangeListener l : listener)
    169                                 l.projectionChanged(old, projection);
     185                firePropertyChanged("projection", old, projection);
    170186        }
    171187        /**
     
    176192                return projection;
    177193        }
     194        public void setDrawRawGpsLines(boolean drawRawGpsLines) {
     195                boolean old = this.drawRawGpsLines;
     196                this.drawRawGpsLines = drawRawGpsLines;
     197                firePropertyChanged("drawRawGpsLines", old, drawRawGpsLines);
     198        }
     199        public boolean isDrawRawGpsLines() {
     200                return drawRawGpsLines;
     201        }
    178202}
Note: See TracChangeset for help on using the changeset viewer.