source: josm/trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableCellRenderer.java@ 6099

Last change on this file since 6099 was 6099, checked in by akks, 11 years ago

see #8921: avoid setTooltipText(null) (gives NPE when tooltip is shown on some JVMs)

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs.relation;
3
4import java.awt.Color;
5import java.awt.Component;
6
7import javax.swing.JLabel;
8import javax.swing.JTable;
9import javax.swing.UIManager;
10import javax.swing.table.TableCellRenderer;
11
12import org.openstreetmap.josm.data.osm.OsmPrimitive;
13
14/**
15 * This is the {@link TableCellRenderer} used in the tables of
16 * {@link org.openstreetmap.josm.gui.conflict.pair.relation.RelationMemberMerger}.
17 *
18 */
19public abstract class MemberTableCellRenderer extends JLabel implements TableCellRenderer {
20 public final static Color BGCOLOR_EMPTY_ROW = new Color(234, 234, 234);
21 public final static Color BGCOLOR_IN_JOSM_SELECTION = new Color(235,255,177);
22
23 public final static Color BGCOLOR_NOT_IN_OPPOSITE = new Color(255, 197, 197);
24 public final static Color BGCOLOR_DOUBLE_ENTRY = new Color(254,226,214);
25
26 /**
27 * constructor
28 */
29 public MemberTableCellRenderer() {
30 setIcon(null);
31 setOpaque(true);
32 }
33
34 /**
35 * reset the renderer
36 */
37 protected void reset() {
38 setBackground(UIManager.getColor("Table.background"));
39 setForeground(UIManager.getColor("Table.foreground"));
40 setBorder(null);
41 setIcon(null);
42 setToolTipText("");
43 }
44
45 protected void renderBackground(MemberTableModel model, OsmPrimitive primitive, boolean isSelected) {
46 Color bgc = UIManager.getColor("Table.background");
47 if (isSelected) {
48 bgc = UIManager.getColor("Table.selectionBackground");
49 } else if (primitive != null && model.isInJosmSelection(primitive)) {
50 bgc = BGCOLOR_IN_JOSM_SELECTION;
51 } else if (primitive != null && model.getNumMembersWithPrimitive(primitive) > 1) {
52 bgc = BGCOLOR_DOUBLE_ENTRY;
53 }
54 setBackground(bgc);
55 }
56
57 protected void renderForeground(boolean isSelected) {
58 Color fgc;
59 if (isSelected) {
60 fgc = UIManager.getColor("Table.selectionForeground");
61 } else {
62 fgc = UIManager.getColor("Table.foreground");
63 }
64 setForeground(fgc);
65 }
66
67 @Override
68 abstract public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
69 boolean hasFocus, int row, int column);
70
71 /**
72 * replies the model
73 * @param table the table
74 * @return the table model
75 */
76 protected MemberTableModel getModel(JTable table) {
77 return (MemberTableModel) table.getModel();
78 }
79}
Note: See TracBrowser for help on using the repository browser.