source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetsInActiveDataLayerListModel.java@ 2621

Last change on this file since 2621 was 2621, checked in by Gubaer, 14 years ago

Moved layer listener management from Layer to MapView
Made sure that listeners also unregister when they register for layer change events.

This will certainly break plugins. Plugin updates will follow later.

File size: 2.1 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.changeset;
3
4import javax.swing.DefaultListSelectionModel;
5
6import org.openstreetmap.josm.Main;
7import org.openstreetmap.josm.gui.MapView;
8import org.openstreetmap.josm.gui.MapView.LayerChangeListener;
9import org.openstreetmap.josm.gui.layer.DataChangeListener;
10import org.openstreetmap.josm.gui.layer.Layer;
11import org.openstreetmap.josm.gui.layer.OsmDataLayer;
12
13public class ChangesetsInActiveDataLayerListModel extends ChangesetListModel implements MapView.LayerChangeListener, DataChangeListener{
14
15 public ChangesetsInActiveDataLayerListModel(DefaultListSelectionModel selectionModel) {
16 super(selectionModel);
17 }
18
19 /* ---------------------------------------------------------------------------- */
20 /* Interface LayerChangeListener */
21 /* ---------------------------------------------------------------------------- */
22 public void activeLayerChange(Layer oldLayer, Layer newLayer) {
23 if (oldLayer != null && oldLayer instanceof OsmDataLayer) {
24 OsmDataLayer l = (OsmDataLayer)oldLayer;
25 l.listenerDataChanged.remove(this);
26 }
27 if (newLayer == null) {
28 setChangesets(null);
29 } else if (newLayer instanceof OsmDataLayer){
30 OsmDataLayer l = (OsmDataLayer)newLayer;
31 l.listenerDataChanged.add(this);
32 initFromDataSet(l.data);
33 } else {
34 setChangesets(null);
35 }
36 }
37 public void layerAdded(Layer newLayer) {}
38 public void layerRemoved(Layer oldLayer) {}
39
40 /* ---------------------------------------------------------------------------- */
41 /* Interface DataChangeListener */
42 /* ---------------------------------------------------------------------------- */
43 public void dataChanged(OsmDataLayer l) {
44 if (l == null) return;
45 if (l != Main.main.getEditLayer()) return;
46 initFromDataSet(l.data);
47 }
48}
Note: See TracBrowser for help on using the repository browser.