/*
* ColorChooserDialog.java - Shows a dialog with a color chooser.
* :tabSize=4:indentSize=4:noTabs=false:
* :folding=explicit:collapseFolds=1:
*
* Copyright (C) 2015 Dale Anson
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.gjt.sp.jedit.gui;
//{{{ Imports
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import org.gjt.sp.jedit.jEdit;
import org.gjt.sp.util.GenericGUIUtilities;
//}}}
public class ColorChooserDialog extends JDialog
{
//{{{ Fields
private Color initialColor = null;
private JColorChooser colorChooser = null;
//}}}
//{{{ ColorChooserDialog
public ColorChooserDialog(Window owner, Color initialColor)
{
super(owner);
setModal(true);
this.initialColor = initialColor;
init();
}
//}}}
//{{{ init()
private void init()
{
setTitle(jEdit.getProperty("colorChooser.title"));
JPanel contents = new JPanel();
contents.setLayout( new BorderLayout() );
contents.setBorder( BorderFactory.createEmptyBorder( 12, 12, 11, 11 ) );
colorChooser = new JColorChooser(initialColor);
contents.add( colorChooser, BorderLayout.CENTER );
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS));
buttonPanel.setBorder(BorderFactory.createEmptyBorder(17, 0, 0, 0));
JButton ok = new JButton(jEdit.getProperty("common.ok"));
ok.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent ae )
{
ColorChooserDialog.this.setVisible(false);
ColorChooserDialog.this.dispose();
}
}
);
getRootPane().setDefaultButton(ok);
JButton cancel = new JButton(jEdit.getProperty("common.cancel"));
cancel.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent ae )
{
ColorChooserDialog.this.setVisible(false);
ColorChooserDialog.this.dispose();
}
}
);
JButton reset = new JButton(jEdit.getProperty("common.reset"));
reset.addActionListener(
new ActionListener()
{
public void actionPerformed( ActionEvent ae )
{
colorChooser.setColor(initialColor);
}
}
);
GenericGUIUtilities.makeSameSize(ok, cancel, reset);
buttonPanel.add(Box.createGlue());
buttonPanel.add(ok);
buttonPanel.add(Box.createHorizontalStrut(6));
buttonPanel.add(cancel);
buttonPanel.add(Box.createHorizontalStrut(6));
buttonPanel.add(reset);
contents.add(buttonPanel, BorderLayout.SOUTH);
setContentPane( contents );
pack();
setLocationRelativeTo( getParent() );
setVisible(true);
}
//}}}
//{{{ getColor()
public Color getColor()
{
Color selectedColor = colorChooser.getColor();
return selectedColor == null ? initialColor : selectedColor;
}
//}}}
}