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

Last change on this file since 3734 was 3262, checked in by bastiK, 14 years ago

extended command list dialog; added inspection panel

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