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

Last change on this file since 5340 was 5266, checked in by bastiK, 12 years ago

fixed majority of javadoc warnings by replacing "{@see" by "{@link"

  • Property svn:eol-style set to native
File size: 3.2 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 tagsin {@link HistoryBrower}
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 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
78 int row, int column) {
79
80 if (value == null)
81 return this;
82
83 String key = (String)value;
84 HistoryBrowserModel.TagTableModel model = getTagTableModel(table);
85
86 switch(column) {
87 case 0:
88 // the name column
89 renderName(key, model, isSelected);
90 break;
91 case 1:
92 // the value column
93 renderValue(key, model, isSelected);
94 break;
95 }
96
97 return this;
98 }
99
100 protected HistoryBrowserModel.TagTableModel getTagTableModel(JTable table) {
101 return (HistoryBrowserModel.TagTableModel) table.getModel();
102 }
103}
Note: See TracBrowser for help on using the repository browser.