/*
* ColorChooseAction.java
*
* Created on 31 ���� 2006 �., 21:34
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package datechooser.beans.editor.utils;
import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import javax.swing.*;
/**
* Button action listener, button is used as color chooser.<br>
* ������� - ���������� ������� �� ������ ������ �����.
* �� ���� � ���������� ������ � �������� �����.
* @author Androsov Vadim
* @since 1.0
*/
public class ColorChooseAction implements ActionListener {
private static JColorChooser chooseColor = new JColorChooser();
public static final String COLOR_CHOOSE_EVENT_NAME = "color";
private ColorHolder colorHolder;
private String prompt;
private Component component;
private PropertyChangeSupport changeSupport;
public ColorChooseAction(ColorHolder colorHolder, String prompt,
Component c) {
changeSupport = new PropertyChangeSupport(this);
setColorHolder(colorHolder);
setPrompt(prompt);
setComponent(c);
}
public void actionPerformed(ActionEvent e) {
Color newColor = chooseColor.showDialog(
getComponent(), getPrompt(), getColor());
if (newColor != null) {
setColor(newColor);
changeSupport.firePropertyChange(COLOR_CHOOSE_EVENT_NAME, null, null);
}
}
public void addPropertyChangeListener(PropertyChangeListener listener) {
changeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
changeSupport.removePropertyChangeListener(listener);
}
public Color getColor() {
return colorHolder.getColor();
}
public ColorHolder getColorHolder() {
return colorHolder;
}
public void setColorHolder(ColorHolder colorHolder) {
this.colorHolder = colorHolder;
}
public void setColor(Color color) {
colorHolder.setColor(color);
}
public String getPrompt() {
return prompt;
}
public void setPrompt(String prompt) {
this.prompt = prompt;
}
public Component getComponent() {
return component;
}
public void setComponent(Component component) {
this.component = component;
}
}