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) {
_

_______________________________________________
josm-dev mailing list
[email protected]
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/josm-dev

Reply via email to