Changeset 6173 in josm for trunk/src/org/openstreetmap/josm/command
- Timestamp:
- 2013-08-22T00:33:32+02:00 (11 years ago)
- Location:
- trunk/src/org/openstreetmap/josm/command
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/command/Command.java
r6162 r6173 16 16 17 17 import org.openstreetmap.josm.Main; 18 import org.openstreetmap.josm.data.coor.EastNorth; 19 import org.openstreetmap.josm.data.coor.LatLon; 18 20 import org.openstreetmap.josm.data.osm.Node; 19 21 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 51 53 public void visit(Relation e) { 52 54 orig.put(e, e.save()); 55 } 56 } 57 58 /** 59 * Small helper for holding the interesting part of the old data state of the objects. 60 */ 61 public static class OldNodeState { 62 63 final LatLon latlon; 64 final EastNorth eastNorth; // cached EastNorth to be used for applying exact displacement 65 final boolean modified; 66 67 /** 68 * Constructs a new {@code OldNodeState} for the given node. 69 * @param node The node whose state has to be remembered 70 */ 71 public OldNodeState(Node node){ 72 latlon = node.getCoor(); 73 eastNorth = node.getEastNorth(); 74 modified = node.isModified(); 53 75 } 54 76 } -
trunk/src/org/openstreetmap/josm/command/MoveCommand.java
r6069 r6173 9 9 import java.util.LinkedList; 10 10 import java.util.List; 11 11 12 import javax.swing.Icon; 12 13 … … 48 49 49 50 /** 50 * Small helper for holding the interesting part of the old data state of the51 * objects.52 */53 public static class OldState {54 LatLon latlon;55 EastNorth en; // cached EastNorth to be used for applying exact displacenment56 boolean modified;57 }58 59 /**60 51 * List of all old states of the objects. 61 52 */ 62 private List<Old State> oldState = new LinkedList<OldState>();53 private List<OldNodeState> oldState = new LinkedList<OldNodeState>(); 63 54 64 55 public MoveCommand(OsmPrimitive osm, double x, double y) { … … 85 76 this.nodes = AllNodesVisitor.getAllNodes(objects); 86 77 for (Node n : this.nodes) { 87 OldState os = new OldState(); 88 os.latlon = new LatLon(n.getCoor()); 89 os.en = n.getEastNorth(); 90 os.modified = n.isModified(); 91 oldState.add(os); 92 } 93 } 94 95 public MoveCommand(Collection<OsmPrimitive> objects, EastNorth start, EastNorth end) { 96 this(objects, end.getX()-start.getX(), end.getY()-start.getY()); 97 startEN = start; 98 } 99 100 public MoveCommand(OsmPrimitive p, EastNorth start, EastNorth end) { 101 this(Collections.singleton(p), end.getX()-start.getX(), end.getY()-start.getY()); 102 startEN = start; 103 } 78 oldState.add(new OldNodeState(n)); 79 } 80 } 81 82 public MoveCommand(Collection<OsmPrimitive> objects, EastNorth start, EastNorth end) { 83 this(objects, end.getX()-start.getX(), end.getY()-start.getY()); 84 startEN = start; 85 } 86 87 public MoveCommand(OsmPrimitive p, EastNorth start, EastNorth end) { 88 this(Collections.singleton(p), end.getX()-start.getX(), end.getY()-start.getY()); 89 startEN = start; 90 } 104 91 105 92 /** … … 135 122 } 136 123 137 124 /** 138 125 * Changes base point of movement 139 126 * @param newDraggedStartPoint - new starting point after movement (where user clicks to start new drag) … … 141 128 public void changeStartPoint(EastNorth newDraggedStartPoint) { 142 129 startEN = new EastNorth(newDraggedStartPoint.getX()-x, newDraggedStartPoint.getY()-y); 143 130 } 144 131 145 132 /** … … 161 148 162 149 private void updateCoordinates() { 163 Iterator<Old State> it = oldState.iterator();164 for (Node n : nodes) { 165 Old State os = it.next();166 n.setEastNorth(os.e n.add(x, y));150 Iterator<OldNodeState> it = oldState.iterator(); 151 for (Node n : nodes) { 152 OldNodeState os = it.next(); 153 n.setEastNorth(os.eastNorth.add(x, y)); 167 154 } 168 155 } … … 183 170 184 171 @Override public void undoCommand() { 185 Iterator<Old State> it = oldState.iterator();186 for (Node n : nodes) { 187 Old State os = it.next();172 Iterator<OldNodeState> it = oldState.iterator(); 173 for (Node n : nodes) { 174 OldNodeState os = it.next(); 188 175 n.setCoor(os.latlon); 189 176 n.setModified(os.modified); -
trunk/src/org/openstreetmap/josm/command/TransformNodesCommand.java
r4918 r6173 12 12 13 13 import org.openstreetmap.josm.data.coor.EastNorth; 14 import org.openstreetmap.josm.data.coor.LatLon;15 14 import org.openstreetmap.josm.data.osm.Node; 16 15 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 30 29 protected Collection<Node> nodes = new LinkedList<Node>(); 31 30 32 /**33 * Small helper for holding the interesting part of the old data state of the34 * nodes.35 */36 public static class OldState {37 LatLon latlon;38 EastNorth eastNorth;39 boolean modified;40 }41 31 42 32 /** 43 33 * List of all old states of the nodes. 44 34 */ 45 protected Map<Node, Old State> oldStates = new HashMap<Node, OldState>();35 protected Map<Node, OldNodeState> oldStates = new HashMap<Node, OldNodeState>(); 46 36 47 37 /** … … 50 40 protected void storeOldState() { 51 41 for (Node n : this.nodes) { 52 OldState os = new OldState(); 53 os.latlon = new LatLon(n.getCoor()); 54 os.eastNorth = n.getEastNorth(); 55 os.modified = n.isModified(); 56 oldStates.put(n, os); 42 oldStates.put(n, new OldNodeState(n)); 57 43 } 58 44 } … … 107 93 public void undoCommand() { 108 94 for (Node n : nodes) { 109 Old State os = oldStates.get(n);95 OldNodeState os = oldStates.get(n); 110 96 n.setCoor(os.latlon); 111 97 n.setModified(os.modified);
Note:
See TracChangeset
for help on using the changeset viewer.