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

Last change on this file since 7129 was 6623, checked in by Don-vip, 10 years ago

fix Sonar issues

  • Property svn:eol-style set to native
File size: 4.6 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 private final DefaultTableCellRenderer defaultTableCellRenderer = new DefaultTableCellRenderer();
21
22 private final OsmPrimitivRenderer primitiveRenderer = new OsmPrimitivRenderer() {
23 @Override
24 public Component getTableCellRendererComponent(JTable table,
25 Object value, boolean isSelected, boolean hasFocus, int row, int column) {
26 return setColors(super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column),
27 table, isSelected, row);
28 }
29 };
30
31 private final TableCellRenderer tableRenderer = new TableCellRenderer() {
32 @Override
33 public Component getTableCellRendererComponent(JTable table, Object value,
34 boolean isSelected, boolean hasFocus, int row, int column) {
35 return setColors(defaultTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column),
36 table, isSelected, row);
37 }
38 };
39
40 private static Component setColors(Component comp, JTable table, boolean isSelected, int row) {
41 RelationMemberConflictResolverModel model = (RelationMemberConflictResolverModel) table.getModel();
42
43 if (!isSelected && comp != null) {
44 switch (model.getDecision(row).getDecision()) {
45 case UNDECIDED:
46 comp.setForeground(ConflictColors.FGCOLOR_UNDECIDED.get());
47 comp.setBackground(ConflictColors.BGCOLOR_UNDECIDED.get());
48 break;
49 case KEEP:
50 comp.setForeground(ConflictColors.FGCOLOR_MEMBER_KEEP.get());
51 comp.setBackground(ConflictColors.BGCOLOR_MEMBER_KEEP.get());
52 break;
53 case REMOVE:
54 comp.setForeground(ConflictColors.FGCOLOR_MEMBER_REMOVE.get());
55 comp.setBackground(ConflictColors.BGCOLOR_MEMBER_REMOVE.get());
56 break;
57 }
58 }
59 return comp;
60 }
61
62 protected final void createColumns() {
63
64 AutoCompletingTextField roleEditor = new AutoCompletingTextField();
65 RelationMemberConflictDecisionRenderer decisionRenderer = new RelationMemberConflictDecisionRenderer();
66 RelationMemberConflictDecisionEditor decisionEditor = new RelationMemberConflictDecisionEditor();
67
68 TableColumn col = null;
69
70 // column 0 - Relation
71 col = new TableColumn(0);
72 col.setHeaderValue("Relation");
73 col.setResizable(true);
74 col.setWidth(100);
75 col.setPreferredWidth(100);
76 col.setCellRenderer(primitiveRenderer);
77 addColumn(col);
78
79 // column 1 - Position
80 col = new TableColumn(1);
81 col.setHeaderValue(tr("Pos."));
82 col.setResizable(true);
83 col.setWidth(40);
84 col.setPreferredWidth(40);
85 col.setCellRenderer(tableRenderer);
86 col.setMaxWidth(50);
87 addColumn(col);
88
89 // column 2 - Role
90 col = new TableColumn(2);
91 col.setHeaderValue(tr("Role"));
92 col.setResizable(true);
93 col.setCellRenderer(tableRenderer);
94 col.setCellEditor(roleEditor);
95 col.setWidth(50);
96 col.setPreferredWidth(50);
97 addColumn(col);
98
99 // column 3 - Original Way
100 col = new TableColumn(3);
101 col.setHeaderValue(tr("Orig. Way"));
102 col.setResizable(true);
103 col.setCellRenderer(primitiveRenderer);
104 col.setWidth(100);
105 col.setPreferredWidth(100);
106 addColumn(col);
107
108 // column 4 - New Way
109 col = new TableColumn(4);
110 col.setHeaderValue(tr("Decision"));
111 col.setResizable(true);
112 col.setCellRenderer(decisionRenderer);
113 col.setCellEditor(decisionEditor);
114 col.setWidth(100);
115 col.setPreferredWidth(100);
116 col.setMaxWidth(100);
117 addColumn(col);
118 }
119
120 /**
121 * Constructs a new {@code RelationMemberConflictResolverColumnModel}.
122 */
123 public RelationMemberConflictResolverColumnModel() {
124 createColumns();
125 }
126}
Note: See TracBrowser for help on using the repository browser.