source: josm/trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java@ 6806

Last change on this file since 6806 was 6084, checked in by bastiK, 11 years ago

see #8902 - add missing @Override annotations (patch by shinigami)

  • 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.history;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.awt.Color;
7import java.awt.Component;
8import java.awt.Font;
9
10import javax.swing.JLabel;
11import javax.swing.JTable;
12import javax.swing.UIManager;
13import javax.swing.table.TableCellRenderer;
14
15/**
16 * The {@link TableCellRenderer} for a list of tags in {@link HistoryBrowser}
17 *
18 */
19public class TagTableCellRenderer extends JLabel implements TableCellRenderer {
20 public final static Color BGCOLOR_DIFFERENCE = new Color(255,197,197);
21
22 public TagTableCellRenderer() {
23 setOpaque(true);
24 }
25
26 protected void renderName(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
27 String text = key;
28 Color bgColor = UIManager.getColor("Table.background");
29 Color fgColor = UIManager.getColor("Table.foreground");
30 Font font = UIManager.getFont("Table.font");
31 if (! model.hasTag(key)) {
32 text = tr("not present");
33 bgColor = BGCOLOR_DIFFERENCE;
34 font = font.deriveFont(Font.ITALIC);
35 } else if (!model.oppositeHasTag(key)) {
36 bgColor = BGCOLOR_DIFFERENCE;
37 }
38 if (isSelected) {
39 bgColor = UIManager.getColor("Table.backgroundSelected");
40 fgColor = UIManager.getColor("Table.foregroundSelected");
41 }
42
43 setText(text);
44 setToolTipText(text);
45 setBackground(bgColor);
46 setForeground(fgColor);
47 setFont(font);
48 }
49
50 protected void renderValue(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
51 String text = "";
52 Color bgColor = UIManager.getColor("Table.background");
53 Color fgColor = UIManager.getColor("Table.foreground");
54 Font font = UIManager.getFont("Table.font");
55 if (! model.hasTag(key)) {
56 text = tr("not present");
57 bgColor = BGCOLOR_DIFFERENCE;
58 font = font.deriveFont(Font.ITALIC);
59 } else {
60 text = model.getValue(key);
61 if (!model.hasSameValueAsOpposite(key)) {
62 bgColor = BGCOLOR_DIFFERENCE;
63 }
64 }
65 if (isSelected) {
66 bgColor = UIManager.getColor("Table.backgroundSelected");
67 fgColor = UIManager.getColor("Table.foregroundSelected");
68 }
69
70 setText(text);
71 setToolTipText(text);
72 setBackground(bgColor);
73 setForeground(fgColor);
74 setFont(font);
75 }
76
77 @Override
78 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
79 int row, int column) {
80
81 if (value == null)
82 return this;
83
84 String key = (String)value;
85 HistoryBrowserModel.TagTableModel model = getTagTableModel(table);
86
87 switch(column) {
88 case 0:
89 // the name column
90 renderName(key, model, isSelected);
91 break;
92 case 1:
93 // the value column
94 renderValue(key, model, isSelected);
95 break;
96 }
97
98 return this;
99 }
100
101 protected HistoryBrowserModel.TagTableModel getTagTableModel(JTable table) {
102 return (HistoryBrowserModel.TagTableModel) table.getModel();
103 }
104}
Note: See TracBrowser for help on using the repository browser.