Ignore:
Timestamp:
2009-12-18T08:40:15+01:00 (14 years ago)
Author:
jttt
Message:

Added listener for edit layer change (not just active layer)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/event/DatasetEventManager.java

    r2625 r2652  
    99import javax.swing.SwingUtilities;
    1010
    11 import org.openstreetmap.josm.Main;
    1211import org.openstreetmap.josm.data.osm.event.DataSetListenerAdapter.Listener;
    1312import org.openstreetmap.josm.gui.MapView;
    14 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
    15 import org.openstreetmap.josm.gui.layer.Layer;
    1613import org.openstreetmap.josm.gui.layer.OsmDataLayer;
    1714
     
    2623 *
    2724 */
    28 public class DatasetEventManager implements LayerChangeListener, Listener {
     25public class DatasetEventManager implements MapView.EditLayerChangeListener, Listener {
    2926
    3027    private static final DatasetEventManager instance = new DatasetEventManager();
     
    4037
    4138    public DatasetEventManager() {
    42         MapView.addLayerChangeListener(this);
     39        MapView.addEditLayerChangeListener(this);
    4340    }
    4441
     
    6259    }
    6360
    64     /* --------------------------------------------------------------------------- */
    65     /* interface LayerChangeListener                                               */
    66     /* --------------------------------------------------------------------------- */
    67     public void activeLayerChange(Layer a, Layer b) {
    68         if (a != null && a instanceof OsmDataLayer) {
    69             ((OsmDataLayer)a).data.removeDataSetListener(myListener);
     61    public void editLayerChanged(OsmDataLayer oldLayer, OsmDataLayer newLayer) {
     62        if (oldLayer != null) {
     63            oldLayer.data.removeDataSetListener(myListener);
    7064        }
    71         if (b != null && b instanceof OsmDataLayer) {
    72             ((OsmDataLayer)b).data.addDataSetListener(myListener);
    73         }
    74         if (Main.main.getEditLayer() != null) {
    75             processDatasetEvent(new DataChangedEvent(Main.main.getEditLayer().data));
     65
     66        if (newLayer != null) {
     67            newLayer.data.addDataSetListener(myListener);
     68            processDatasetEvent(new DataChangedEvent(newLayer.data));
     69        } else {
     70            processDatasetEvent(new DataChangedEvent(null));
    7671        }
    7772    }
    78     public void layerRemoved(Layer a) {/* irrelevant in this context */}
    79     public void layerAdded(Layer a) {/* irrelevant in this context */}
    8073
    8174    public void processDatasetEvent(AbstractDatasetChangedEvent event) {
Note: See TracChangeset for help on using the changeset viewer.