package org.droiddraw.gui;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.util.Vector;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.droiddraw.AndroidEditor;
import org.droiddraw.property.ColorProperty;
public class ColorPanel extends JPanel {
private static final long serialVersionUID = 1L;
JButton jb;
JTextField jt;
JAutoComboBox jac;
BufferedImage img;
Color c;
public ColorPanel(Color clr) {
this.c = clr;
img = new BufferedImage(20,20, BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = img.getGraphics();
g.setColor(c);
g.fillRect(0, 0, img.getWidth(), img.getHeight());
jb = new JButton(new ImageIcon(img));
//jt = new JTextField(ColorProperty.makeColor(c), 6);
Vector<String> colors = new Vector<String>();
colors.add("");
for (String key : AndroidEditor.instance().getColors().keySet()) {
colors.add("@drawable/"+key);
}
jt = new JTextField();
jac = new JAutoComboBox(colors);
jac.setEditable(true);
jac.setStrict(false);
jac.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println(jac.getSelectedItem().toString());
Color c = ColorProperty.parseColor(jac.getSelectedItem().toString());
if (c != null) {
setColor(c);
}
}
});
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Color nc = chooseColor();
if (nc != null) {
setColor(nc);
//jt.setText(ColorProperty.makeColor(nc));
String colorString = ColorProperty.makeColor(nc);
jac.addItem(colorString);
jac.setSelectedItem(colorString);
}
}
});
add(jac);
add(jb);
}
public void setColor(Color nc) {
System.out.println(nc);
Graphics g = img.getGraphics();
g.setColor(nc);
g.fillRect(0, 0, img.getWidth(), img.getHeight());
jb.repaint();
c = nc;
}
public Color getColor() {
return c;
}
public String getString() {
//return jt.getText();
return jac.getSelectedItem().toString();
}
static JDialog jd;
static JColorChooser jcc;
static Color sc;
public static Color chooseColor() {
sc = null;
if (jcc == null) {
jcc = new JColorChooser();
jd = JColorChooser.createDialog(null, "Choose a color", true, jcc, new ActionListener() {
public void actionPerformed(ActionEvent e) {
sc = jcc.getColor();
}
}, null);
}
jd.setVisible(true);
return sc;
}
}