[1822] | 1 | // License: GPL. For details, see LICENSE file.
|
---|
| 2 | package org.openstreetmap.josm.gui.dialogs.relation;
|
---|
| 3 |
|
---|
| 4 | import java.awt.Component;
|
---|
| 5 | import java.util.HashMap;
|
---|
| 6 |
|
---|
| 7 | import javax.swing.ImageIcon;
|
---|
| 8 | import javax.swing.JTable;
|
---|
| 9 |
|
---|
| 10 | import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
---|
| 11 | import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
|
---|
| 12 | import org.openstreetmap.josm.gui.PrimitiveNameFormatter;
|
---|
| 13 | import org.openstreetmap.josm.tools.ImageProvider;
|
---|
| 14 |
|
---|
| 15 | public class MemberTableMemberCellRenderer extends MemberTableCellRenderer {
|
---|
| 16 | private HashMap<OsmPrimitiveType, ImageIcon> icons;
|
---|
| 17 | static private final PrimitiveNameFormatter NAME_FORMATTER = new PrimitiveNameFormatter();
|
---|
| 18 |
|
---|
| 19 | public MemberTableMemberCellRenderer() {
|
---|
| 20 | super();
|
---|
| 21 | loadIcons();
|
---|
| 22 | }
|
---|
| 23 |
|
---|
| 24 | /**
|
---|
| 25 | * Load the image icon for an OSM primitive of type node
|
---|
| 26 | *
|
---|
| 27 | * @return the icon; null, if not found
|
---|
| 28 | */
|
---|
| 29 | protected void loadIcons() {
|
---|
| 30 | icons = new HashMap<OsmPrimitiveType, ImageIcon>();
|
---|
| 31 | icons.put(OsmPrimitiveType.NODE, ImageProvider.get("data", "node"));
|
---|
| 32 | icons.put(OsmPrimitiveType.WAY, ImageProvider.get("data", "way"));
|
---|
| 33 | icons.put(OsmPrimitiveType.RELATION, ImageProvider.get("data", "relation"));
|
---|
| 34 | }
|
---|
| 35 |
|
---|
| 36 | protected void renderPrimitive(OsmPrimitive primitive) {
|
---|
| 37 | setIcon(icons.get(OsmPrimitiveType.from(primitive)));
|
---|
| 38 | setText(NAME_FORMATTER.getName(primitive));
|
---|
| 39 | setToolTipText(buildToolTipText(primitive));
|
---|
| 40 | }
|
---|
| 41 |
|
---|
| 42 | @Override
|
---|
| 43 | public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
|
---|
| 44 | int row, int column) {
|
---|
| 45 |
|
---|
| 46 | reset();
|
---|
| 47 |
|
---|
| 48 | renderForeground(isSelected);
|
---|
| 49 | OsmPrimitive primitive = (OsmPrimitive) value;
|
---|
| 50 | renderBackground(getModel(table), primitive, isSelected);
|
---|
| 51 | renderPrimitive(primitive);
|
---|
| 52 | return this;
|
---|
| 53 | }
|
---|
| 54 | }
|
---|