source: josm/trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictDecisionRenderer.java@ 9078

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

sonar - Immutable Field

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.conflict.tags;
3
4import java.awt.Component;
5import java.awt.Font;
6
7import javax.swing.JLabel;
8import javax.swing.JList;
9import javax.swing.JTable;
10import javax.swing.ListCellRenderer;
11import javax.swing.UIManager;
12import javax.swing.table.TableCellRenderer;
13
14import org.openstreetmap.josm.gui.widgets.JosmComboBox;
15
16public class RelationMemberConflictDecisionRenderer extends JLabel
17implements TableCellRenderer, ListCellRenderer<RelationMemberConflictDecisionType> {
18
19 private final JosmComboBox<RelationMemberConflictDecisionType> cbDecisionTypes;
20
21 protected void resetTableRenderer() {
22 setOpaque(true);
23 setFont(UIManager.getFont("Table.font"));
24 setBackground(UIManager.getColor("Table.background"));
25 setForeground(UIManager.getColor("Table.foreground"));
26 }
27
28 protected void resetListRenderer() {
29 setOpaque(true);
30 setFont(UIManager.getFont("ComboBox.font"));
31 setBackground(UIManager.getColor("ComboBox.background"));
32 setForeground(UIManager.getColor("ComboBox.foreground"));
33 }
34
35 /**
36 * Constructs a new {@code RelationMemberConflictDecisionRenderer}.
37 */
38 public RelationMemberConflictDecisionRenderer() {
39 cbDecisionTypes = new JosmComboBox<>(RelationMemberConflictDecisionType.values());
40 cbDecisionTypes.setRenderer(this);
41 }
42
43 /* --------------------------------------------------------------------------------- */
44 /* TableCellRenderer */
45 /* --------------------------------------------------------------------------------- */
46 @Override
47 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
48 int row, int column) {
49 resetTableRenderer();
50 if (value == null)
51 return this;
52
53 if (isSelected) {
54 setBackground(UIManager.getColor("Table.selectionBackground"));
55 setForeground(UIManager.getColor("Table.selectionForeground"));
56 }
57 RelationMemberConflictDecisionType decision = (RelationMemberConflictDecisionType) value;
58 cbDecisionTypes.setSelectedItem(decision);
59 return cbDecisionTypes;
60 }
61
62 /* --------------------------------------------------------------------------------- */
63 /* ListCellRenderer */
64 /* --------------------------------------------------------------------------------- */
65 @Override
66 public Component getListCellRendererComponent(
67 JList<? extends RelationMemberConflictDecisionType> list,
68 RelationMemberConflictDecisionType decision, int index, boolean isSelected,
69 boolean cellHasFocus) {
70 resetListRenderer();
71 if (isSelected) {
72 setBackground(UIManager.getColor("ComboBox.selectionBackground"));
73 setForeground(UIManager.getColor("ComboBox.selectionForeground"));
74 }
75 RelationMemberConflictDecisionType.prepareLabel(decision, this);
76 if (RelationMemberConflictDecisionType.UNDECIDED.equals(decision)) {
77 setFont(getFont().deriveFont(Font.ITALIC));
78 }
79 return this;
80 }
81}
Note: See TracBrowser for help on using the repository browser.