source: josm/trunk/src/org/openstreetmap/josm/command/ChangeNodesCommand.java@ 3257

Last change on this file since 3257 was 3142, checked in by bastiK, 14 years ago

see #4554 - Fixing duplicate nodes takes increasingly longer

  • Property svn:eol-style set to native
File size: 1.8 KB
Line 
1// License: GPL. See LICENSE file for details.
2package org.openstreetmap.josm.command;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.util.Collection;
7import java.util.List;
8
9import javax.swing.JLabel;
10import javax.swing.tree.DefaultMutableTreeNode;
11import javax.swing.tree.MutableTreeNode;
12
13import org.openstreetmap.josm.data.osm.Node;
14import org.openstreetmap.josm.data.osm.Way;
15import org.openstreetmap.josm.data.osm.OsmPrimitive;
16import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
17import org.openstreetmap.josm.gui.DefaultNameFormatter;
18import org.openstreetmap.josm.tools.ImageProvider;
19
20/**
21 * Command that changes the nodes list of a way.
22 * The same can be done with ChangeCommand, but this is more
23 * efficient. (Needed for the duplicate node fixing
24 * tool of the validator plugin, when processing large data sets.)
25 *
26 * @author Imi
27 */
28public class ChangeNodesCommand extends Command {
29
30 private final Way way;
31 private final List<Node> newNodes;
32
33 public ChangeNodesCommand(Way way, List<Node> newNodes) {
34 super();
35 this.way = way;
36 this.newNodes = newNodes;
37 }
38
39 @Override public boolean executeCommand() {
40 super.executeCommand();
41 way.setNodes(newNodes);
42 way.setModified(true);
43 return true;
44 }
45
46 @Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
47 modified.add(way);
48 }
49
50 @Override public MutableTreeNode description() {
51 String msg = tr("Changed nodes of {0}", way.getDisplayName(DefaultNameFormatter.getInstance()));
52 return new DefaultMutableTreeNode(
53 new JLabel(msg,
54 ImageProvider.get(OsmPrimitiveType.WAY),
55 JLabel.HORIZONTAL));
56 }
57}
Note: See TracBrowser for help on using the repository browser.