package haushalt.gui.dialoge;
import java.awt.Color;
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.border.Border;
public class ColorRenderer extends JLabel implements ListCellRenderer {
private static final long serialVersionUID = 1L;
private Border unselectedBorder = null;
private Border selectedBorder = null;
private boolean isBordered = true;
public ColorRenderer(final boolean isBordered) {
this.isBordered = isBordered;
setOpaque(true); // MUST do this for background to show up.
}
public Component getListCellRendererComponent(
final JList list,
final Object color,
final int index,
final boolean isSelected,
final boolean hasFocus) {
final Color newColor = (Color) color;
setBackground(newColor);
if (this.isBordered) {
if (isSelected) {
if (this.selectedBorder == null) {
this.selectedBorder = BorderFactory.createMatteBorder(2, 5, 2, 5, list.getSelectionBackground());
}
setBorder(this.selectedBorder);
} else {
if (this.unselectedBorder == null) {
this.unselectedBorder = BorderFactory.createMatteBorder(2, 5, 2, 5, list.getBackground());
}
setBorder(this.unselectedBorder);
}
}
setText("#" + Integer.toHexString(newColor.getRGB()).toUpperCase());
return this;
}
}