Changeset 16945 in osm


Ignore:
Timestamp:
2009-08-09T22:42:58+02:00 (15 years ago)
Author:
stoecker
Message:

removing layer now also disables related menu

Location:
applications/editors/josm/plugins/livegps
Files:
5 edited

Legend:

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

    r16294 r16945  
    2626                <attribute name="Plugin-Description" value="Support live GPS input (moving dot) through a connection to gpsd server."/>
    2727                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/LiveGPS"/>
    28                 <attribute name="Plugin-Mainversion" value="1725"/>
     28                <attribute name="Plugin-Mainversion" value="1890"/>
    2929                <attribute name="Plugin-Stage" value="50"/>
    3030                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
  • applications/editors/josm/plugins/livegps/src/livegps/LiveGpsAcquirer.java

    r16933 r16945  
    3636        if(!propertyChangeListener.contains(listener)) {
    3737            propertyChangeListener.add(listener);
     38        }
     39    }
     40
     41    /**
     42     * Remove a property change listener from the acquirer.
     43     * @param listener the new listener
     44     */
     45    public void removePropertyChangeListener(PropertyChangeListener listener) {
     46        if(propertyChangeListener.contains(listener)) {
     47            propertyChangeListener.remove(listener);
    3848        }
    3949    }
  • applications/editors/josm/plugins/livegps/src/livegps/LiveGpsData.java

    r16933 r16945  
    163163     */
    164164    public Way getWay() {
    165         if(way == null) {
     165        if(way == null && Main.map != null && Main.map.mapView != null) {
    166166            Point xy = Main.map.mapView.getPoint(getLatLon());
    167167            way = Main.map.mapView.getNearestWay(xy);
  • applications/editors/josm/plugins/livegps/src/livegps/LiveGpsLayer.java

    r16294 r16945  
    138138     */
    139139    public void propertyChange(PropertyChangeEvent evt) {
    140         if(!visible) {
     140        if(!isVisible()) {
    141141            return;
    142142        }
     
    154154            }
    155155        }
    156 
    157156    }
    158 
    159157}
  • applications/editors/josm/plugins/livegps/src/livegps/LiveGpsPlugin.java

    r16933 r16945  
    1919import org.openstreetmap.josm.gui.MainMenu;
    2020import org.openstreetmap.josm.gui.MapFrame;
     21import org.openstreetmap.josm.gui.layer.Layer;
     22import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
    2123import org.openstreetmap.josm.plugins.Plugin;
    2224import org.openstreetmap.josm.tools.Shortcut;
    2325
    24 public class LiveGpsPlugin extends Plugin
     26public class LiveGpsPlugin extends Plugin implements LayerChangeListener
    2527{
    2628    private LiveGpsAcquirer acquirer = null;
     
    3436
    3537    private GpxData data = new GpxData();
    36     private LiveGpsLayer lgpslayer;
    37 
     38    private LiveGpsLayer lgpslayer = null;
    3839
    3940    public class CaptureAction extends JosmAction {
     
    7475                setAutoCenter(lgpsautocenter.isSelected());
    7576            }
     77        }
     78    }
     79
     80    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
     81    }
     82
     83    public void layerAdded(Layer newLayer) {
     84    }
     85
     86    public void layerRemoved(Layer oldLayer) {
     87        if(oldLayer == lgpslayer)
     88        {
     89            enableTracking(false);
     90            lgpscapture.setSelected(false);
     91            removePropertyChangeListener(lgpslayer);
     92            Layer.listeners.remove(this);
     93            lgpslayer = null;
    7694        }
    7795    }
     
    135153                    lgpslayer = new LiveGpsLayer(data);
    136154                    Main.main.addLayer(lgpslayer);
     155                    Layer.listeners.add(this);
    137156                    lgpslayer.setAutoCenter(isAutoCenter());
    138157                }
     
    170189    }
    171190
     191    /**
     192     * Remove a listener for gps events.
     193     * @param listener the listener.
     194     */
     195    public void removePropertyChangeListener(PropertyChangeListener listener) {
     196        if(acquirer != null)
     197            acquirer.removePropertyChangeListener(listener);
     198        else if(listenerQueue != null && listenerQueue.contains(listener))
     199            listenerQueue.remove(listener);
     200    }
    172201
    173202    /* (non-Javadoc)
     
    184213    }
    185214
    186 
    187215    /**
    188216     * @return the lgpsmenu
     
    191219        return this.lgpsmenu;
    192220    }
    193 
    194221}
    195 
Note: See TracChangeset for help on using the changeset viewer.