source: josm/trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverColumnModel.java@ 11348

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

findbugs - fix some SIC_INNER_SHOULD_BE_STATIC_ANON

  • Property svn:eol-style set to native
File size: 4.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.tags;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Component;
7
8import javax.swing.JTable;
9import javax.swing.table.DefaultTableCellRenderer;
10import javax.swing.table.DefaultTableColumnModel;
11import javax.swing.table.TableCellRenderer;
12import javax.swing.table.TableColumn;
13
14import org.openstreetmap.josm.gui.OsmPrimitivRenderer;
15import org.openstreetmap.josm.gui.conflict.ConflictColors;
16import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
17
18public class RelationMemberConflictResolverColumnModel extends DefaultTableColumnModel {
19
20 static final class MemberRenderer extends OsmPrimitivRenderer {
21 @Override
22 public Component getTableCellRendererComponent(JTable table,
23 Object value, boolean isSelected, boolean hasFocus, int row, int column) {
24 return setColors(super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column),
25 table, isSelected, row);
26 }
27 }
28
29 private final DefaultTableCellRenderer defaultTableCellRenderer = new DefaultTableCellRenderer();
30
31 private final transient OsmPrimitivRenderer primitiveRenderer = new MemberRenderer();
32
33 private final transient TableCellRenderer tableRenderer = (table, value, isSelected, hasFocus, row, column)
34 -> setColors(defaultTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column),
35 table, isSelected, row);
36
37 /**
38 * Constructs a new {@code RelationMemberConflictResolverColumnModel}.
39 */
40 public RelationMemberConflictResolverColumnModel() {
41 createColumns();
42 }
43
44 private static Component setColors(Component comp, JTable table, boolean isSelected, int row) {
45 RelationMemberConflictResolverModel model = (RelationMemberConflictResolverModel) table.getModel();
46
47 if (!isSelected && comp != null) {
48 switch (model.getDecision(row).getDecision()) {
49 case UNDECIDED:
50 comp.setForeground(ConflictColors.FGCOLOR_UNDECIDED.get());
51 comp.setBackground(ConflictColors.BGCOLOR_UNDECIDED.get());
52 break;
53 case KEEP:
54 comp.setForeground(ConflictColors.FGCOLOR_MEMBER_KEEP.get());
55 comp.setBackground(ConflictColors.BGCOLOR_MEMBER_KEEP.get());
56 break;
57 case REMOVE:
58 comp.setForeground(ConflictColors.FGCOLOR_MEMBER_REMOVE.get());
59 comp.setBackground(ConflictColors.BGCOLOR_MEMBER_REMOVE.get());
60 break;
61 }
62 }
63 return comp;
64 }
65
66 protected final void createColumns() {
67
68 AutoCompletingTextField roleEditor = new AutoCompletingTextField(0, false);
69 RelationMemberConflictDecisionRenderer decisionRenderer = new RelationMemberConflictDecisionRenderer();
70 RelationMemberConflictDecisionEditor decisionEditor = new RelationMemberConflictDecisionEditor();
71
72 // column 0 - Relation
73 TableColumn col = new TableColumn(0);
74 col.setHeaderValue("Relation");
75 col.setResizable(true);
76 col.setWidth(100);
77 col.setPreferredWidth(100);
78 col.setCellRenderer(primitiveRenderer);
79 addColumn(col);
80
81 // column 1 - Position
82 col = new TableColumn(1);
83 col.setHeaderValue(tr("Pos."));
84 col.setResizable(true);
85 col.setWidth(40);
86 col.setPreferredWidth(40);
87 col.setCellRenderer(tableRenderer);
88 col.setMaxWidth(50);
89 addColumn(col);
90
91 // column 2 - Role
92 col = new TableColumn(2);
93 col.setHeaderValue(tr("Role"));
94 col.setResizable(true);
95 col.setCellRenderer(tableRenderer);
96 col.setCellEditor(roleEditor);
97 col.setWidth(50);
98 col.setPreferredWidth(50);
99 addColumn(col);
100
101 // column 3 - Original Way
102 col = new TableColumn(3);
103 col.setHeaderValue(tr("Orig. Way"));
104 col.setResizable(true);
105 col.setCellRenderer(primitiveRenderer);
106 col.setWidth(100);
107 col.setPreferredWidth(100);
108 addColumn(col);
109
110 // column 4 - New Way
111 col = new TableColumn(4);
112 col.setHeaderValue(tr("Decision"));
113 col.setResizable(true);
114 col.setCellRenderer(decisionRenderer);
115 col.setCellEditor(decisionEditor);
116 col.setWidth(100);
117 col.setPreferredWidth(100);
118 col.setMaxWidth(100);
119 addColumn(col);
120 }
121}
Note: See TracBrowser for help on using the repository browser.