[josm-dev] [PATCH 26/26] Last bits...

Dave Hansen dave at sr71.net
Tue Apr 29 03:03:09 BST 2008


Some last bits I haven't even gotten to documenting, yet...

---

 core-dave/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java |    6 +++---
 core-dave/src/org/openstreetmap/josm/actions/ReverseWayAction.java  |    8 +++-----
 core-dave/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java    |    6 ++++++
 3 files changed, 12 insertions(+), 8 deletions(-)

diff -puN src/org/openstreetmap/josm/actions/JoinNodeWayAction.java~rest src/org/openstreetmap/josm/actions/JoinNodeWayAction.java
--- core/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java~rest	2008-04-28 18:59:30.000000000 -0700
+++ core-dave/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	2008-04-28 18:59:30.000000000 -0700
@@ -15,6 +15,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.command.AddNodeToWayCommand;
 import org.openstreetmap.josm.command.ChangeCommand;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
@@ -55,11 +56,10 @@ public class JoinNodeWayAction extends J
 		Collection<Command> cmds = new LinkedList<Command>();
 		for (Map.Entry<Way, List<Integer>> insertPoint : insertPoints.entrySet()) {
 			Way w = insertPoint.getKey();
-			Way wnew = new Way(w);
 			List<Integer> is = insertPoint.getValue();
 			pruneSuccsAndReverse(is);
-			for (int i : is) wnew.nodes.add(i+1, node);
-			cmds.add(new ChangeCommand(w, wnew));
+			for (int i : is)
+				cmds.add(new AddNodeToWayCommand(w, node, i+1));
 		}
 
 		Main.main.undoRedo.add(new SequenceCommand(tr("Join Node and Line"), cmds));
diff -puN src/org/openstreetmap/josm/actions/ReverseWayAction.java~rest src/org/openstreetmap/josm/actions/ReverseWayAction.java
--- core/src/org/openstreetmap/josm/actions/ReverseWayAction.java~rest	2008-04-28 18:59:30.000000000 -0700
+++ core-dave/src/org/openstreetmap/josm/actions/ReverseWayAction.java	2008-04-28 18:59:30.000000000 -0700
@@ -14,6 +14,7 @@ import javax.swing.JOptionPane;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.command.ChangeCommand;
 import org.openstreetmap.josm.command.Command;
+import org.openstreetmap.josm.command.ReverseWayCommand;
 import org.openstreetmap.josm.command.SequenceCommand;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Node;
@@ -47,11 +48,8 @@ public final class ReverseWayAction exte
     		return;
     	}
     	Collection<Command> c = new LinkedList<Command>();
-    	for (Way w : sel) {
-    		Way wnew = new Way(w);
-			Collections.reverse(wnew.nodes);
-    		c.add(new ChangeCommand(w, wnew));
-    	}
+    	for (Way w : sel)
+    		c.add(new ReverseWayCommand(w));
     	Main.main.undoRedo.add(new SequenceCommand(tr("Reverse ways"), c));
     	Main.map.repaint();
     }
diff -puN src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java~rest src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
--- core/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java~rest	2008-04-28 18:59:30.000000000 -0700
+++ core-dave/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java	2008-04-28 18:59:30.000000000 -0700
@@ -189,6 +189,11 @@ public class OsmDataLayer extends Layer 
 	}
 
 	@Override public void mergeFrom(final Layer from) {
+		// Since the ReverseLookup is layer-private, it gets really
+		// hard to keep it consistent here since things are goign
+		// between layers, so just disabled it.
+		data.rl.disable();
+		((OsmDataLayer)from).data.rl.disable();
 		final MergeVisitor visitor = new MergeVisitor(data,((OsmDataLayer)from).data);
 		for (final OsmPrimitive osm : ((OsmDataLayer)from).data.allPrimitives())
 			osm.visit(visitor);
@@ -206,6 +211,7 @@ public class OsmDataLayer extends Layer 
 		JOptionPane.showMessageDialog(Main.parent,tr("There were conflicts during import."));
 		if (!dlg.isVisible())
 			dlg.action.actionPerformed(new ActionEvent(this, 0, ""));
+		data.rl.enable();
 	}
 
 	@Override public boolean isMergable(final Layer other) {
_




More information about the josm-dev mailing list