package net.codjo.control.gui.plugin;
import java.awt.Component;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
class ComboBoxRenderer extends JLabel implements ListCellRenderer {
private static final String NULL = "null";
private static final String NULL_LABEL = " ";
private String nullLabel = NULL_LABEL;
ComboBoxRenderer() {
setOpaque(true);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
if (index != -1) {
this.setText(getElementAt(index));
}
else {
this.setText(nullLabel);
}
return this;
}
private String getElementAt(int viewIndex) {
return rendererValue("testRenderer " + viewIndex);
}
private String rendererValue(String value) {
if (NULL.equals(value)) {
return nullLabel;
}
else {
return value;
}
}
}