package org.netbeans.modules.desktopsampler.ui;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.Icon;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.colorchooser.AbstractColorChooserPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
/**
* A simple ColorChooserPanel for JColorChooser based on ColorSampler.
*
* @author Sandip V. Chitale
* @version 1.0
*
* @see ColorSampler
*/
public class ColorSamplerColorChooserPanel
extends AbstractColorChooserPanel
implements ChangeListener {
private boolean isAdjusting = false;
private ColorSampler colorSampler;
private Magnifier magnifier;
public ColorSamplerColorChooserPanel() {
colorSampler = new ColorSampler();
colorSampler.addChangeListener(this);
magnifier = new Magnifier();
}
public void stateChanged(ChangeEvent ce) {
getColorSelectionModel().
setSelectedColor(colorSampler.getSelectedColor());
}
// Implementation of AbstractColorChooserPanel
/**
* Return display name.
*
* @return a String value
*/
public String getDisplayName() {
return "Color Sampler";
}
/**
* Update the chooser.
*
*/
public void updateChooser() {
if (!isAdjusting) {
isAdjusting = true;
colorSampler.
showColor(getColorSelectionModel().getSelectedColor(), false);
isAdjusting = false;
}
}
/**
* Build the chooser panel.
*/
public void buildChooser() {
setLayout(new BorderLayout());
add(colorSampler, BorderLayout.NORTH);
add(magnifier, BorderLayout.CENTER);
}
/**
* Return small icon.
*
* @return an Icon value
*/
public Icon getSmallDisplayIcon() {
return ColorSampler.COLOR_SAMPLER_ICON;
}
/**
* Return large icon.
*
* @return an Icon value
*/
public Icon getLargeDisplayIcon() {
return null;
}
/**
* Return font.
*
* @return a Font value
*/
public Font getFont() {
return null;
}
/**
* ColorSampler test.
*
* @param args a String[] value
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
System.err.println(e);
}
JFrame frame = new JFrame("Color Sampler Color Chooser");
JColorChooser colorChooser = new JColorChooser();
colorChooser.addChooserPanel(new ColorSamplerColorChooserPanel());
frame.setContentPane(colorChooser);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}