package jas2.util;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

/**
 * 
 */

public class ColorChooser extends JButton
{
	public ColorChooser()
	{
		this(Color.black);
	}
	public ColorChooser(Color c)
	{
		setColor(c);
		setOpaque(true);
	}
	public ColorChooser(final String key)
	{
		m_prop = Application.getApplication().getUserProperties();
		m_key = key;
		setOpaque(true);
		setColor(m_prop.getColor(key, Color.black));
	}
	public Dimension getPreferredSize()
	{
		return new Dimension(20,20);
	}
	public void setColor(Color c)
	{
		m_color = c;
		setBackground(c);
		repaint(); // Should not be necessary? (swing 0.6.1)
		Enumeration e = m_listeners.elements();
		while (e.hasMoreElements())
		{
			ColorListener l = (ColorListener) e.nextElement();
			l.colorChanged(new ColorEvent(this,c));
		}
	}
	public Color getColor()
	{
		return m_color;
	}
	public void addColorListener(ColorListener l)
	{
		m_listeners.addElement(l);
	}
	public void removeColorListener(ColorListener l)
	{
		m_listeners.removeElement(l);
	}
	protected void fireActionPerformed(ActionEvent e) 
	{
		Color c = javax.swing.JColorChooser.showDialog(this,"Choose color...",m_color);
		if (c != null)
		{
			setColor(c);
			if (m_key != null)
				m_prop.setColor(m_key, c);
		}
	}
	private UserProperties m_prop;
	private String m_key;
	private Color m_color;
	private Vector m_listeners = new Vector();
}

 

Ads help maintain this website.