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

Last change on this file since 4072 was 4072, checked in by jttt, 13 years ago

Fix #6301 Check for null mandatory in TableCellRenderer.getTableCellRendererComponent

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