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

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

sonarqube - squid:S4551 - Enum values should be compared with "=="

  • 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
16/**
17 * This class renders {@link RelationMemberConflictDecisionType} entries of a list/table
18 */
19public class RelationMemberConflictDecisionRenderer extends JLabel
20implements TableCellRenderer, ListCellRenderer<RelationMemberConflictDecisionType> {
21
22 private final JosmComboBox<RelationMemberConflictDecisionType> cbDecisionTypes;
23
24 protected void resetTableRenderer() {
25 setOpaque(true);
26 setFont(UIManager.getFont("Table.font"));
27 setBackground(UIManager.getColor("Table.background"));
28 setForeground(UIManager.getColor("Table.foreground"));
29 }
30
31 protected void resetListRenderer() {
32 setOpaque(true);
33 setFont(UIManager.getFont("ComboBox.font"));
34 setBackground(UIManager.getColor("ComboBox.background"));
35 setForeground(UIManager.getColor("ComboBox.foreground"));
36 }
37
38 /**
39 * Constructs a new {@code RelationMemberConflictDecisionRenderer}.
40 */
41 public RelationMemberConflictDecisionRenderer() {
42 cbDecisionTypes = new JosmComboBox<>(RelationMemberConflictDecisionType.values());
43 cbDecisionTypes.setRenderer(this);
44 }
45
46 /* --------------------------------------------------------------------------------- */
47 /* TableCellRenderer */
48 /* --------------------------------------------------------------------------------- */
49 @Override
50 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
51 int row, int column) {
52 resetTableRenderer();
53 if (value == null)
54 return this;
55
56 if (isSelected) {
57 setBackground(UIManager.getColor("Table.selectionBackground"));
58 setForeground(UIManager.getColor("Table.selectionForeground"));
59 }
60 RelationMemberConflictDecisionType decision = (RelationMemberConflictDecisionType) value;
61 cbDecisionTypes.setSelectedItem(decision);
62 return cbDecisionTypes;
63 }
64
65 /* --------------------------------------------------------------------------------- */
66 /* ListCellRenderer */
67 /* --------------------------------------------------------------------------------- */
68 @Override
69 public Component getListCellRendererComponent(
70 JList<? extends RelationMemberConflictDecisionType> list,
71 RelationMemberConflictDecisionType decision, int index, boolean isSelected,
72 boolean cellHasFocus) {
73 resetListRenderer();
74 if (isSelected) {
75 setBackground(UIManager.getColor("ComboBox.selectionBackground"));
76 setForeground(UIManager.getColor("ComboBox.selectionForeground"));
77 }
78 RelationMemberConflictDecisionType.prepareLabel(decision, this);
79 if (RelationMemberConflictDecisionType.UNDECIDED == decision) {
80 setFont(getFont().deriveFont(Font.ITALIC));
81 }
82 return this;
83 }
84}
Note: See TracBrowser for help on using the repository browser.