/*
* RapidMiner
*
* Copyright (C) 2001-2014 by RapidMiner and the contributors
*
* Complete list of developers available at our web site:
*
* http://rapidminer.com
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package com.rapidminer.gui.new_plotter.gui.cellrenderer;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListCellRenderer;
/**
* @author Nils Woehler
*
*/
public class ColorListCellRenderer implements ListCellRenderer {
// private final Border focusBorder = BorderFactory.createLineBorder(Color.gray, 3);
// private final Border noFocusBorder = BorderFactory.createEmptyBorder(3, 3, 3, 3);
private final JPanel container;
private final JPanel colorComponent;
private JPanel darkerColorComponent;
// private JPanel darkestColorComponent;
private JPanel colorContainer;
private DefaultListCellRenderer delegate = new DefaultListCellRenderer();
public ColorListCellRenderer() {
container = new JPanel(new GridBagLayout());
GridBagConstraints itemConstraint = new GridBagConstraints();
itemConstraint.insets = new Insets(1, 1, 1, 1);
{
colorContainer = new JPanel(new GridBagLayout());
{
colorComponent = new JPanel();
colorComponent.setPreferredSize(new Dimension(50, 20));
colorContainer.add(colorComponent, itemConstraint);
}
{
darkerColorComponent = new JPanel();
darkerColorComponent.setPreferredSize(new Dimension(50, 20));
colorContainer.add(darkerColorComponent, itemConstraint);
}
// {
//
// darkestColorComponent = new JPanel();
// darkestColorComponent.setPreferredSize(new Dimension(50, 20));
// itemConstraint.ipadx = 5;
// colorContainer.add(darkestColorComponent, itemConstraint);
// }
// {
// JPanel spacer = new JPanel();
// spacer.setPreferredSize(new Dimension(5,20));
// colorContainer.add(spacer,itemConstraint);
// }
container.add(colorContainer, itemConstraint);
}
}
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Color background = delegate.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus).getBackground();
Color color = (Color) value;
colorComponent.setBackground(color);
darkerColorComponent.setBackground(color.darker());
// darkestColorComponent.setBackground(color.darker().darker());
// if (isSelected) {
// colorContainer.setBorder(focusBorder);
// } else {
// colorContainer.setBorder(noFocusBorder);
// }
colorContainer.setBackground(background);
container.setBackground(background);
return container;
}
}