001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.gui.dialogs.relation; 003 004import java.awt.Component; 005import java.awt.Rectangle; 006 007import javax.swing.JTable; 008 009import org.openstreetmap.josm.data.osm.OsmPrimitive; 010import org.openstreetmap.josm.gui.DefaultNameFormatter; 011import org.openstreetmap.josm.tools.ImageProvider; 012 013/** 014 * "Refers to" column in relation editor's member list. 015 */ 016public class MemberTableMemberCellRenderer extends MemberTableCellRenderer { 017 018 /** 019 * Constructs a new {@code MemberTableMemberCellRenderer}. 020 */ 021 public MemberTableMemberCellRenderer() { 022 super(); 023 } 024 025 protected void renderPrimitive(OsmPrimitive primitive, Rectangle cellSize) { 026 // Make icon the full height of the table cell. Icon background is square. 027 setIcon(ImageProvider.getPadded(primitive, cellSize)); 028 setText(primitive.getDisplayName(DefaultNameFormatter.getInstance())); 029 setToolTipText(DefaultNameFormatter.getInstance().buildDefaultToolTip(primitive)); 030 } 031 032 @Override 033 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 034 int row, int column) { 035 036 reset(); 037 if (value == null) 038 return this; 039 040 Rectangle cellSize = table.getCellRect(row, column, false); 041 042 OsmPrimitive primitive = (OsmPrimitive) value; 043 renderBackgroundForeground(getModel(table), primitive, isSelected); 044 renderPrimitive(primitive, cellSize); 045 return this; 046 } 047}