source: josm/trunk/src/org/openstreetmap/josm/gui/OsmPrimitivRenderer.java@ 1329

Last change on this file since 1329 was 1169, checked in by stoecker, 15 years ago

removed usage of tab stops

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1// License: GPL. Copyright 2007 by Immanuel Scholz and others
2package org.openstreetmap.josm.gui;
3
4import java.awt.Component;
5
6import javax.swing.DefaultListCellRenderer;
7import javax.swing.JLabel;
8import javax.swing.JList;
9import javax.swing.JTable;
10import javax.swing.ListCellRenderer;
11import javax.swing.table.DefaultTableCellRenderer;
12import javax.swing.table.TableCellRenderer;
13
14import org.openstreetmap.josm.data.osm.OsmPrimitive;
15import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
16
17/**
18 * Renderer that renders the objects from an OsmPrimitive as data.
19 *
20 * Can be used in lists and tables.
21 *
22 * @author imi
23 * @author Frederik Ramm <frederik@remote.org>
24 */
25public class OsmPrimitivRenderer implements ListCellRenderer, TableCellRenderer {
26
27 /**
28 * NameVisitor provides proper names and icons for OsmPrimitives
29 */
30 private NameVisitor visitor = new NameVisitor();
31
32 /**
33 * Default list cell renderer - delegate for ListCellRenderer operation
34 */
35 private DefaultListCellRenderer defaultListCellRenderer = new DefaultListCellRenderer();
36
37 /**
38 * Default table cell renderer - delegate for TableCellRenderer operation
39 */
40 private DefaultTableCellRenderer defaultTableCellRenderer = new DefaultTableCellRenderer();
41
42 /**
43 * Adapter method supporting the ListCellRenderer interface.
44 */
45 public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
46 Component def = defaultListCellRenderer.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
47 return renderer(def, (OsmPrimitive) value);
48 }
49
50 /**
51 * Adapter method supporting the TableCellRenderer interface.
52 */
53 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
54 Component def = defaultTableCellRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
55 return renderer(def, (OsmPrimitive) value);
56 }
57
58 /**
59 * Internal method that stuffs information into the rendering component
60 * provided that it's a kind of JLabel.
61 * @param def the rendering component
62 * @param value the OsmPrimtive to render
63 * @return the modified rendering component
64 */
65 private Component renderer(Component def, OsmPrimitive value) {
66 if (def != null && value != null && def instanceof JLabel) {
67 (value).visit(visitor);
68 ((JLabel)def).setText(visitor.name);
69 ((JLabel)def).setIcon(visitor.icon);
70 }
71 return def;
72 }
73
74}
Note: See TracBrowser for help on using the repository browser.