Changeset 290 in josm for src/org/openstreetmap/josm/gui/MapView.java
- Timestamp:
- 2007-07-18T23:12:56+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/gui/MapView.java
r283 r290 21 21 import org.openstreetmap.josm.data.coor.EastNorth; 22 22 import org.openstreetmap.josm.data.coor.LatLon; 23 import org.openstreetmap.josm.data.osm.DataSet; 23 24 import org.openstreetmap.josm.data.osm.OsmPrimitive; 24 25 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor; … … 81 82 82 83 // listend to selection changes to redraw the map 83 Main.ds.listeners.add(new SelectionChangedListener(){84 DataSet.listeners.add(new SelectionChangedListener(){ 84 85 public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) { 85 86 repaint(); … … 102 103 public void addLayer(Layer layer) { 103 104 if (layer instanceof OsmDataLayer) { 104 final OsmDataLayer dataLayer = (OsmDataLayer)layer; 105 if (editLayer != null) { 106 editLayer.mergeFrom(layer); 107 repaint(); 108 return; 109 } 110 editLayer = dataLayer; 111 dataLayer.data.listeners.addAll(Main.ds.listeners); 112 Main.ds = dataLayer.data; 113 dataLayer.listenerModified.add(new ModifiedChangedListener(){ 105 editLayer = (OsmDataLayer)layer; 106 Main.ds = editLayer.data; 107 editLayer.listenerModified.add(new ModifiedChangedListener(){ 114 108 public void modifiedChanged(boolean value, OsmDataLayer source) { 115 109 JOptionPane.getFrameForComponent(Main.parent).setTitle((value?"*":"")+tr("Java OpenStreetMap - Editor")); … … 118 112 } 119 113 120 // add as a new layer 121 if (layer instanceof OsmDataLayer) 122 layers.add(0, layer); 123 else 124 layers.add(layers.size(), layer); 114 layers.add(layers.size(), layer); 125 115 126 116 for (LayerChangeListener l : listeners) … … 176 166 for (int i = layers.size()-1; i >= 0; --i) { 177 167 Layer l = layers.get(i); 178 if (l.visible )168 if (l.visible && l != getActiveLayer()) 179 169 l.paint(g, this); 180 170 } 171 if (getActiveLayer().visible) 172 getActiveLayer().paint(g, this); 181 173 182 174 // draw world borders … … 261 253 if (!layers.contains(layer)) 262 254 throw new IllegalArgumentException("Layer must be in layerlist"); 255 if (layer instanceof OsmDataLayer) { 256 editLayer = (OsmDataLayer)layer; 257 Main.ds = editLayer.data; 258 DataSet.fireSelectionChanged(Main.ds.getSelected()); 259 } 263 260 Layer old = activeLayer; 264 261 activeLayer = layer; … … 266 263 for (LayerChangeListener l : listeners) 267 264 l.activeLayerChange(old, layer); 265 repaint(); 268 266 } 269 267
Note:
See TracChangeset
for help on using the changeset viewer.