1 package jp.sourceforge.stigmata.ui.swing.actions;
8 import java.awt.event.ActionEvent;
9 import java.awt.event.ActionListener;
11 import javax.swing.AbstractAction;
12 import javax.swing.JColorChooser;
13 import javax.swing.JDialog;
15 import jp.sourceforge.stigmata.ui.swing.GUIUtility;
16 import jp.sourceforge.stigmata.ui.swing.StigmataFrame;
20 * @author Haruaki TAMADA
23 public class ChangeColorAction extends AbstractAction{
24 private static final long serialVersionUID = -7617597154707466764L;
26 private StigmataFrame frame;
27 private Color currentColor = Color.RED;
28 private JColorChooser chooser;
29 private boolean colorSelected = false;
30 private ActionListener listener;
32 public ChangeColorAction(String label, StigmataFrame frame,
33 Color initialColor, ActionListener listener){
34 super(frame.getMessages().get(label + ".label"), GUIUtility.getIcon(frame.getMessages(), label + ".icon"));
36 this.listener = listener;
37 this.currentColor = initialColor;
39 chooser = new JColorChooser();
40 chooser.setColor(initialColor);
43 public ChangeColorAction(StigmataFrame frame, Color color, ActionListener listener){
44 this("changecolor", frame, color, listener);
47 public ChangeColorAction(StigmataFrame frame, ActionListener listener){
48 this(frame, Color.RED, listener);
51 public boolean isColorSelected(){
55 public Color getColor(){
59 public void actionPerformed(ActionEvent e){
60 chooser.setColor(currentColor);
61 JDialog dialog = JColorChooser.createDialog(
62 frame, frame.getMessages().get("changecolor.title"),
64 new ActionListener(){ // ok
65 public void actionPerformed(ActionEvent e){
66 currentColor = chooser.getColor();
68 listener.actionPerformed(new ActionEvent(ChangeColorAction.this, e.getID(), e.getActionCommand(), e.getWhen(), e.getModifiers()));
71 new ActionListener(){ // cancel
72 public void actionPerformed(ActionEvent e){
73 colorSelected = false;
77 dialog.setVisible(true);