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

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

refactor conflict classes

  • Property svn:eol-style set to native
File size: 2.6 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.command.conflict.RelationMemberConflictResolverCommand;
7import org.openstreetmap.josm.data.conflict.Conflict;
8import org.openstreetmap.josm.data.osm.OsmPrimitive;
9import org.openstreetmap.josm.data.osm.Relation;
10import org.openstreetmap.josm.data.osm.RelationMember;
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}s.
15 * @since 1631
16 */
17public class RelationMemberMerger extends ListMerger<RelationMember, RelationMemberConflictResolverCommand> {
18
19 /**
20 * Constructs a new {@code RelationMemberMerger}.
21 */
22 public RelationMemberMerger() {
23 super(new RelationMemberListMergeModel());
24 }
25
26 @Override
27 protected JScrollPane buildMyElementsTable() {
28 myEntriesTable = new RelationMemberTable(
29 "table.mymembers",
30 model,
31 model.getMyTableModel(),
32 model.getMySelectionModel()
33 );
34 return embeddInScrollPane(myEntriesTable);
35 }
36
37 @Override
38 protected JScrollPane buildMergedElementsTable() {
39 mergedEntriesTable = new RelationMemberTable(
40 "table.mergedmembers",
41 model,
42 model.getMergedTableModel(),
43 model.getMergedSelectionModel()
44 );
45 mergedEntriesTable.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
46 return embeddInScrollPane(mergedEntriesTable);
47 }
48
49 @Override
50 protected JScrollPane buildTheirElementsTable() {
51 theirEntriesTable = new RelationMemberTable(
52 "table.theirmembers",
53 model,
54 model.getTheirTableModel(),
55 model.getTheirSelectionModel()
56 );
57 return embeddInScrollPane(theirEntriesTable);
58 }
59
60 @Override
61 public void populate(Conflict<? extends OsmPrimitive> conflict) {
62 Relation myRel = (Relation) conflict.getMy();
63 Relation theirRel = (Relation) conflict.getTheir();
64 ((RelationMemberListMergeModel) model).populate(myRel, theirRel, conflict.getMergedMap());
65 myEntriesTable.setLayer(findLayerFor(myRel));
66 theirEntriesTable.setLayer(findLayerFor(theirRel));
67 }
68
69 @Override
70 public void deletePrimitive(boolean deleted) {
71 if (deleted) {
72 model.clearMerged();
73 model.setFrozen(true);
74 } else {
75 model.setFrozen(false);
76 }
77 }
78}
Note: See TracBrowser for help on using the repository browser.