/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.client.swing;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import javax.swing.JColorChooser;
import javax.swing.JComponent;
import javax.swing.border.BevelBorder;
import com.t3.client.TabletopTool;
/**
* @author trevor
*/
public class ColorPickerButton extends JComponent {
private Color color;
private String title;
public ColorPickerButton(String title, Color defaultColor) {
color = defaultColor;
this.title = title;
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
Color oldColor = color;
Color newColor = JColorChooser.showDialog(TabletopTool.getFrame(), ColorPickerButton.this.title, oldColor);
if (newColor != null) {
ColorPickerButton.this.color = newColor;
repaint();
}
}
});
setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
}
/* (non-Javadoc)
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
*/
@Override
protected void paintComponent(Graphics g) {
Dimension mySize = getSize();
g.setColor(color);
g.fillRect(0, 0, mySize.width, mySize.height);
}
public Color getSelectedColor() {
return color;
}
/* (non-Javadoc)
* @see javax.swing.JComponent#getMinimumSize()
*/
@Override
public Dimension getMinimumSize() {
return new Dimension(16, 16);
}
/* (non-Javadoc)
* @see javax.swing.JComponent#getPreferredSize()
*/
@Override
public Dimension getPreferredSize() {
return getMinimumSize();
}
/* (non-Javadoc)
* @see javax.swing.JComponent#getMaximumSize()
*/
@Override
public Dimension getMaximumSize() {
return getMinimumSize();
}
}