source: josm/trunk/src/org/openstreetmap/josm/command/VersionConflictResolveCommand.java@ 2054

Last change on this file since 2054 was 2017, checked in by Gubaer, 15 years ago

removed OptionPaneUtil
cleanup of deprecated Layer API
cleanup of deprecated APIs in OsmPrimitive and Way
cleanup of imports

File size: 2.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.command;
3
4import static org.openstreetmap.josm.tools.I18n.marktr;
5import static org.openstreetmap.josm.tools.I18n.tr;
6
7import java.util.Collection;
8
9import javax.swing.JLabel;
10import javax.swing.tree.DefaultMutableTreeNode;
11import javax.swing.tree.MutableTreeNode;
12
13import org.openstreetmap.josm.data.conflict.Conflict;
14import org.openstreetmap.josm.data.osm.OsmPrimitive;
15import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
16import org.openstreetmap.josm.tools.ImageProvider;
17
18/**
19 * Represents a command for resolving a version conflict between two {@see OsmPrimitive}
20 *
21 *
22 */
23public class VersionConflictResolveCommand extends ConflictResolveCommand {
24
25 /** the conflict to resolve */
26 private Conflict<OsmPrimitive> conflict;
27
28 /**
29 * constructor
30 * @param my my primitive (i.e. the primitive from the local dataset)
31 * @param their their primitive (i.e. the primitive from the server)
32 */
33 public VersionConflictResolveCommand(OsmPrimitive my, OsmPrimitive their) {
34 conflict = new Conflict<OsmPrimitive>(my, their);
35 }
36
37 @Override
38 public MutableTreeNode description() {
39 String msg = "";
40 switch(OsmPrimitiveType.from(conflict.getMy())) {
41 case NODE: msg = marktr("Resolve version conflicts for node {0}"); break;
42 case WAY: msg = marktr("Resolve version conflicts for way {0}"); break;
43 case RELATION: msg = marktr("Resolve version conflicts for relation {0}"); break;
44 }
45 return new DefaultMutableTreeNode(
46 new JLabel(
47 tr(msg,conflict.getMy().id),
48 ImageProvider.get("data", "object"),
49 JLabel.HORIZONTAL
50 )
51 );
52 }
53
54 @Override
55 public boolean executeCommand() {
56 super.executeCommand();
57 conflict.getMy().version = Math.max(conflict.getMy().version, conflict.getTheir().version);
58 getLayer().getConflicts().remove(conflict);
59 rememberConflict(conflict);
60 return true;
61 }
62
63 @Override
64 public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted,
65 Collection<OsmPrimitive> added) {
66 modified.add(conflict.getMy());
67 }
68}
Note: See TracBrowser for help on using the repository browser.