source: josm/trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMerger.java@ 5297

Last change on this file since 5297 was 5297, checked in by Don-vip, 12 years ago

fix #4493, fix #7750: conflict dialog, nodes and members tab: allow selection via double-click, allow zoom via contexual menu, plus various fix in EDT violations

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.pair.relation;
3
4import javax.swing.JScrollPane;
5
6import org.openstreetmap.josm.data.conflict.Conflict;
7import org.openstreetmap.josm.data.osm.OsmPrimitive;
8import org.openstreetmap.josm.data.osm.Relation;
9import org.openstreetmap.josm.data.osm.RelationMember;
10import org.openstreetmap.josm.gui.conflict.pair.IConflictResolver;
11import org.openstreetmap.josm.gui.conflict.pair.ListMerger;
12
13/**
14 * A UI component for resolving conflicts in the member lists of two {@link Relation}
15 */
16public class RelationMemberMerger extends ListMerger<RelationMember> implements IConflictResolver {
17 @Override
18 protected JScrollPane buildMyElementsTable() {
19 myEntriesTable = new RelationMemberTable(
20 "table.mymembers",
21 model.getMyTableModel(),
22 model.getMySelectionModel()
23 );
24 return embeddInScrollPane(myEntriesTable);
25 }
26
27 @Override
28 protected JScrollPane buildMergedElementsTable() {
29 mergedEntriesTable = new RelationMemberTable(
30 "table.mergedmembers",
31 model.getMergedTableModel(),
32 model.getMergedSelectionModel()
33 );
34 mergedEntriesTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
35 return embeddInScrollPane(mergedEntriesTable);
36 }
37
38 @Override
39 protected JScrollPane buildTheirElementsTable() {
40 theirEntriesTable = new RelationMemberTable(
41 "table.theirmembers",
42 model.getTheirTableModel(),
43 model.getTheirSelectionModel()
44 );
45 return embeddInScrollPane(theirEntriesTable);
46 }
47
48 public void populate(Conflict<? extends OsmPrimitive> conflict) {
49 RelationMemberListMergeModel model = (RelationMemberListMergeModel)getModel();
50 model.populate((Relation)conflict.getMy(), (Relation)conflict.getTheir());
51 }
52
53 public RelationMemberMerger() {
54 super(new RelationMemberListMergeModel());
55 }
56
57 public void deletePrimitive(boolean deleted) {
58 if (deleted) {
59 model.clearMerged();
60 model.setFrozen(true);
61 } else {
62 model.setFrozen(false);
63 }
64 }
65}
Note: See TracBrowser for help on using the repository browser.