- Timestamp:
- 2007-08-10T21:12:53+02:00 (18 years ago)
- Location:
- src/org/openstreetmap/josm
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/command/AddCommand.java
r301 r304 16 16 import org.openstreetmap.josm.data.osm.visitor.DeleteVisitor; 17 17 import org.openstreetmap.josm.data.osm.visitor.NameVisitor; 18 import org.openstreetmap.josm.gui.layer.Layer; 19 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 18 20 19 21 /** … … 37 39 public AddCommand(OsmPrimitive osm) { 38 40 this.osm = osm; 39 this.ds = Main. ds;41 this.ds = Main.main.editLayer().data; 40 42 } 41 43 … … 52 54 } 53 55 56 // faster implementation 57 @Override public boolean invalidBecauselayerRemoved(Layer oldLayer) { 58 return oldLayer instanceof OsmDataLayer && ((OsmDataLayer)oldLayer).data == ds; 59 } 60 54 61 @Override public MutableTreeNode description() { 55 62 NameVisitor v = new NameVisitor(); -
src/org/openstreetmap/josm/command/Command.java
r298 r304 1 // 1 //License: GPL. Copyright 2007 by Immanuel Scholz and others 2 2 package org.openstreetmap.josm.command; 3 3 … … 15 15 import org.openstreetmap.josm.data.osm.Way; 16 16 import org.openstreetmap.josm.data.osm.visitor.Visitor; 17 import org.openstreetmap.josm.gui.layer.Layer; 18 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 17 19 18 20 … … 31 33 private static final class CloneVisitor implements Visitor { 32 34 public Map<OsmPrimitive, OsmPrimitive> orig = new HashMap<OsmPrimitive, OsmPrimitive>(); 33 35 34 36 public void visit(Node n) { 35 37 orig.put(n, new Node(n)); 36 38 } 37 39 public void visit(Segment s) { 38 40 orig.put(s, new Segment(s)); 39 41 } 40 42 public void visit(Way w) { 41 43 orig.put(w, new Way(w)); 42 44 } 43 45 } 44 46 45 47 private CloneVisitor orig; 46 48 47 49 /** 48 50 * Executes the command on the dataset. This implementation will remember all … … 69 71 } 70 72 73 74 /** 75 * Called, when a layer has been removed to have the command remove itself from 76 * any buffer if it is not longer applicable to the dataset (e.g. it was part of 77 * the removed layer) 78 */ 79 public boolean invalidBecauselayerRemoved(Layer oldLayer) { 80 if (!(oldLayer instanceof OsmDataLayer)) 81 return false; 82 HashSet<OsmPrimitive> modified = new HashSet<OsmPrimitive>(); 83 fillModifiedData(modified, modified, modified); 84 if (modified.isEmpty()) 85 return false; 86 87 HashSet<OsmPrimitive> all = new HashSet<OsmPrimitive>(((OsmDataLayer)oldLayer).data.allPrimitives()); 88 for (OsmPrimitive osm : all) 89 if (all.contains(osm)) 90 return true; 91 92 return false; 93 } 94 71 95 /** 72 96 * Fill in the changed data this command operates on. -
src/org/openstreetmap/josm/data/UndoRedoHandler.java
r301 r304 1 // 1 //License: GPL. Copyright 2007 by Immanuel Scholz and others 2 2 package org.openstreetmap.josm.data; 3 3 4 import java.util.Iterator; 4 5 import java.util.LinkedList; 5 6 import java.util.Stack; … … 7 8 import org.openstreetmap.josm.Main; 8 9 import org.openstreetmap.josm.command.Command; 10 import org.openstreetmap.josm.gui.layer.Layer; 9 11 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 12 import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener; 10 13 import org.openstreetmap.josm.gui.layer.OsmDataLayer.CommandQueueListener; 11 14 12 public class UndoRedoHandler { 15 public class UndoRedoHandler implements LayerChangeListener { 13 16 14 17 /** … … 22 25 23 26 public final LinkedList<CommandQueueListener> listenerCommands = new LinkedList<CommandQueueListener>(); 27 28 29 public UndoRedoHandler() { 30 Layer.listeners.add(this); 31 } 24 32 25 33 … … 37 45 fireCommandsChanged(); 38 46 } 39 47 40 48 /** 41 49 * Undoes the last added command. … … 81 89 commands.clear(); 82 90 fireCommandsChanged(); 83 } 91 } 92 93 public void layerRemoved(Layer oldLayer) { 94 boolean changed = false; 95 for (Iterator<Command> it = commands.iterator(); it.hasNext();) { 96 if (it.next().invalidBecauselayerRemoved(oldLayer)) { 97 it.remove(); 98 changed = true; 99 } 100 } 101 for (Iterator<Command> it = redoCommands.iterator(); it.hasNext();) { 102 if (it.next().invalidBecauselayerRemoved(oldLayer)) { 103 it.remove(); 104 changed = true; 105 } 106 } 107 if (changed) 108 fireCommandsChanged(); 109 } 110 111 public void layerAdded(Layer newLayer) {} 112 public void activeLayerChange(Layer oldLayer, Layer newLayer) {} 84 113 } -
src/org/openstreetmap/josm/gui/MapView.java
r298 r304 48 48 * Interface to notify listeners of the change of the active layer. 49 49 * @author imi 50 */ 51 public interface LayerChangeListener { 50 * @deprecated Use Layer.LayerChangeListener instead 51 */ 52 @Deprecated public interface LayerChangeListener { 52 53 void activeLayerChange(Layer oldLayer, Layer newLayer); 53 54 void layerAdded(Layer newLayer); … … 69 70 /** 70 71 * The listener of the active layer changes. 71 */ 72 private Collection<LayerChangeListener> listeners = new LinkedList<LayerChangeListener>(); 72 * @deprecated Use Layer.listener instead. 73 */ 74 @Deprecated private Collection<LayerChangeListener> listeners = new LinkedList<LayerChangeListener>(); 73 75 74 76 public MapView() { … … 115 117 layers.add(layers.size(), layer); 116 118 119 // TODO: Deprecated 117 120 for (LayerChangeListener l : listeners) 121 l.layerAdded(layer); 122 for (Layer.LayerChangeListener l : Layer.listeners) 118 123 l.layerAdded(layer); 119 124 … … 128 133 */ 129 134 public void removeLayer(Layer layer) { 130 if (layers.remove(layer)) 135 if (layers.remove(layer)) { 136 // TODO: Deprecated 131 137 for (LayerChangeListener l : listeners) 132 138 l.layerRemoved(layer); 139 for (Layer.LayerChangeListener l : Layer.listeners) 140 l.layerRemoved(layer); 141 } 133 142 if (layer == editLayer) { 134 143 editLayer = null; … … 227 236 * Add a listener for changes of active layer. 228 237 * @param listener The listener that get added. 229 */ 230 public void addLayerChangeListener(LayerChangeListener listener) { 238 * @deprecated Use Layer.listener.add instead. 239 */ 240 @Deprecated public void addLayerChangeListener(LayerChangeListener listener) { 231 241 if (listener != null) 232 242 listeners.add(listener); … … 236 246 * Remove the listener. 237 247 * @param listener The listener that get removed from the list. 238 */ 239 public void removeLayerChangeListener(LayerChangeListener listener) { 248 * @deprecated Use Layer.listener.remove instead 249 */ 250 @Deprecated public void removeLayerChangeListener(LayerChangeListener listener) { 240 251 listeners.remove(listener); 241 252 } … … 261 272 Layer old = activeLayer; 262 273 activeLayer = layer; 263 if (old != layer) 274 if (old != layer) { 275 // TODO: Deprecated 264 276 for (LayerChangeListener l : listeners) 265 277 l.activeLayerChange(old, layer); 278 for (Layer.LayerChangeListener l : Layer.listeners) 279 l.activeLayerChange(old, layer); 280 } 266 281 repaint(); 267 282 } -
src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
r298 r304 33 33 import org.openstreetmap.josm.gui.MapFrame; 34 34 import org.openstreetmap.josm.gui.MapView; 35 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;36 35 import org.openstreetmap.josm.gui.layer.Layer; 37 36 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 37 import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener; 38 38 import org.openstreetmap.josm.tools.DontShowAgainInfo; 39 39 import org.openstreetmap.josm.tools.ImageProvider; … … 180 180 } 181 181 }); 182 mapView.addLayerChangeListener(this);182 Layer.listeners.add(this); 183 183 184 184 instance.addMouseListener(new MouseAdapter(){ … … 283 283 public void layerRemoved(Layer oldLayer) { 284 284 model.removeElement(oldLayer); 285 if (model.isEmpty()) { 286 Layer.listeners.remove(this); 287 return; 288 } 285 289 if (instance.getSelectedIndex() == -1) 286 290 instance.setSelectedIndex(0); … … 296 300 updateButtonEnabled(); 297 301 } 298 299 public void layerMoved(Layer layer, int newPosition) {}300 302 } -
src/org/openstreetmap/josm/gui/layer/GeoImageLayer.java
r298 r304 56 56 import org.openstreetmap.josm.gui.MapView; 57 57 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 58 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;59 58 import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 60 59 import org.openstreetmap.josm.gui.dialogs.LayerListPopup; … … 224 223 }; 225 224 Main.map.mapView.addMouseListener(mouseAdapter); 226 Main.map.mapView.addLayerChangeListener(new LayerChangeListener(){225 Layer.listeners.add(new LayerChangeListener(){ 227 226 public void activeLayerChange(Layer oldLayer, Layer newLayer) {} 228 227 public void layerAdded(Layer newLayer) {} -
src/org/openstreetmap/josm/gui/layer/Layer.java
r298 r304 5 5 import java.awt.Graphics; 6 6 import java.io.File; 7 import java.util.Collection; 8 import java.util.concurrent.CopyOnWriteArrayList; 7 9 8 10 import javax.swing.Icon; … … 28 30 */ 29 31 abstract public class Layer implements Destroyable { 32 33 /** 34 * Interface to notify listeners of the change of the active layer. 35 * @author imi 36 */ 37 public interface LayerChangeListener { 38 void activeLayerChange(Layer oldLayer, Layer newLayer); 39 void layerAdded(Layer newLayer); 40 void layerRemoved(Layer oldLayer); 41 } 42 43 /** 44 * The listener of the active layer changes. You may register/deregister yourself 45 * while an LayerChangeListener - action is executed. 46 */ 47 public static final Collection<LayerChangeListener> listeners = new CopyOnWriteArrayList<LayerChangeListener>(); 30 48 31 49 /** -
src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
r298 r304 27 27 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor; 28 28 import org.openstreetmap.josm.gui.MapView; 29 import org.openstreetmap.josm.gui.MapView.LayerChangeListener;30 29 import org.openstreetmap.josm.gui.dialogs.LayerListDialog; 31 30 import org.openstreetmap.josm.gui.dialogs.LayerListPopup; … … 81 80 } 82 81 Main.map.mapView.repaint(); 83 }84 });85 86 Main.map.mapView.addLayerChangeListener(new LayerChangeListener(){87 public void activeLayerChange(Layer oldLayer, Layer newLayer) {}88 public void layerAdded(Layer newLayer) {}89 public void layerRemoved(Layer oldLayer) {90 Main.pref.listener.remove(MarkerLayer.this);91 82 } 92 83 }); -
src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
r301 r304 270 270 for (Item i : data) { 271 271 if (i.focus) { 272 System.out.println(i.requestFocusInWindow());272 i.requestFocusInWindow(); 273 273 return; 274 274 }
Note:
See TracChangeset
for help on using the changeset viewer.