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

Last change on this file since 2250 was 2017, checked in by Gubaer, 15 years ago

removed OptionPaneUtil
cleanup of deprecated Layer API
cleanup of deprecated APIs in OsmPrimitive and Way
cleanup of imports

File size: 2.8 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.util.logging.Logger;
9
10import javax.swing.JLabel;
11import javax.swing.JTable;
12import javax.swing.table.TableCellRenderer;
13
14/**
15 * The {@see TableCellRenderer} for a list of tagsin {@see HistoryBrower}
16 *
17 */
18public class TagTableCellRenderer extends JLabel implements TableCellRenderer {
19
20 static private Logger logger = Logger.getLogger(TagTableCellRenderer.class.getName());
21
22 public final static Color BGCOLOR_SELECTED = new Color(143,170,255);
23 public final static Color BGCOLOR_DIFFERENCE = new Color(255,197,197);
24
25 public TagTableCellRenderer() {
26 setOpaque(true);
27 setForeground(Color.BLACK);
28 }
29
30 protected void renderName(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
31 String text = key;
32 Color bgColor = Color.WHITE;
33 if (! model.hasTag(key)) {
34 text = tr("<undefined>");
35 bgColor = BGCOLOR_DIFFERENCE;
36 } else if (!model.oppositeHasTag(key)) {
37 bgColor = BGCOLOR_DIFFERENCE;
38 }
39 if (isSelected) {
40 bgColor = BGCOLOR_SELECTED;
41 }
42 setText(text);
43 setToolTipText(text);
44 setBackground(bgColor);
45 }
46
47 protected void renderValue(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
48 String text = "";
49 Color bgColor = Color.WHITE;
50 if (! model.hasTag(key)) {
51 text = tr("<undefined>");
52 bgColor = BGCOLOR_DIFFERENCE;
53 } else {
54 text = model.getValue(key);
55 if (!model.hasSameValueAsOpposite(key)) {
56 bgColor = BGCOLOR_DIFFERENCE;
57 }
58 }
59 if (isSelected) {
60 bgColor = BGCOLOR_SELECTED;
61 }
62
63 setText(text);
64 setToolTipText(text);
65 setBackground(bgColor);
66 }
67
68 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
69 int row, int column) {
70
71 String key = (String)value;
72 HistoryBrowserModel.TagTableModel model = getTagTableModel(table);
73
74 switch(column) {
75 case 0:
76 // the name column
77 renderName(key, model, isSelected);
78 break;
79 case 1:
80 // the value column
81 renderValue(key, model, isSelected);
82 break;
83 }
84
85 return this;
86 }
87
88 protected HistoryBrowserModel.TagTableModel getTagTableModel(JTable table) {
89 return (HistoryBrowserModel.TagTableModel) table.getModel();
90 }
91}
Note: See TracBrowser for help on using the repository browser.