package org.openjump.swing.list;
import java.awt.Color;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
public class LabelListCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if (value instanceof JLabel) {
JLabel label = (JLabel)value;
label.setOpaque(true);
label.setComponentOrientation(list.getComponentOrientation());
Color bg = null;
Color fg = null;
if (isSelected) {
label.setBackground(bg == null ? list.getSelectionBackground() : bg);
label.setForeground(fg == null ? list.getSelectionForeground() : fg);
} else {
label.setBackground(list.getBackground());
label.setForeground(list.getForeground());
}
label.setEnabled(list.isEnabled());
label.setFont(list.getFont());
Border border = null;
if (cellHasFocus) {
if (isSelected) {
border = UIManager.getBorder("List.focusSelectedCellHighlightBorder");
}
if (border == null) {
border = UIManager.getBorder("List.focusCellHighlightBorder");
}
} else {
border = new EmptyBorder(1, 1, 1, 1);
}
label.setBorder(border);
return label;
} else {
return super.getListCellRendererComponent(list, value, index, isSelected,
cellHasFocus);
}
}
}