// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.gui.dialogs.relation;
import java.awt.Component;
import java.awt.Dimension;
import javax.swing.JTable;
import org.openstreetmap.josm.data.osm.OsmPrimitive;
import org.openstreetmap.josm.gui.DefaultNameFormatter;
import org.openstreetmap.josm.tools.ImageProvider;
/**
* "Refers to" column in relation editor's member list.
*/
public class MemberTableMemberCellRenderer extends MemberTableCellRenderer {
/**
* Constructs a new {@code MemberTableMemberCellRenderer}.
*/
public MemberTableMemberCellRenderer() {
super();
// Explicit default constructor is needed for intantiation via reflection
}
protected void renderPrimitive(OsmPrimitive primitive, Dimension cellSize) {
// Make icon the full height of the table cell. Icon background is square.
int size = Math.min(cellSize.width, cellSize.height);
setIcon(ImageProvider.getPadded(primitive, new Dimension(size, size)));
setText(primitive.getDisplayName(DefaultNameFormatter.getInstance()));
setToolTipText(DefaultNameFormatter.getInstance().buildDefaultToolTip(primitive));
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
reset();
if (value == null)
return this;
Dimension cellSize = table.getCellRect(row, column, false).getSize();
OsmPrimitive primitive = (OsmPrimitive) value;
renderBackgroundForeground(getModel(table), primitive, isSelected);
renderPrimitive(primitive, cellSize);
return this;
}
}