001 package org.jdesktop.swingx.editors;
002
003 import java.awt.Color;
004 import java.awt.Component;
005 import java.awt.Graphics;
006 import java.awt.Graphics2D;
007 import java.awt.Paint;
008 import java.awt.Rectangle;
009 import java.beans.PropertyChangeEvent;
010 import java.beans.PropertyChangeListener;
011 import java.beans.PropertyEditorSupport;
012
013 /**
014 *
015 * @author joshy
016 */
017 public class Paint2PropertyEditor extends PropertyEditorSupport {
018 Paint paint = new Color(0,128,255);
019 PaintPicker picker = new PaintPicker();
020
021 /** Creates a new instance of Paint2PropertyEditor */
022 public Paint2PropertyEditor() {
023 picker.addPropertyChangeListener("paint",new PropertyChangeListener() {
024 public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
025 paint = picker.getPaint();
026 firePropertyChange();
027 }
028 });
029
030 }
031
032 public Paint getValue() {
033 return paint;
034 }
035
036 public void setValue(Object object) {
037 paint = (Paint)object;
038 picker.setPaint(paint);
039 super.setValue(object);
040 }
041
042
043 public String getJavaInitializationString() {
044 Paint paint = getValue();
045 //TODO!!!
046 return paint == null ? "null" :
047 "org.jdesktop.swingx.painter.gradient.LinearGradientPainter.BLACK_STAR";
048 }
049
050 public void setAsText(String text) throws IllegalArgumentException {
051 // do nothing right now
052 }
053
054 public String getAsText() {
055 return "PainterText";
056 }
057
058 public void paintValue(Graphics g, Rectangle box) {
059 Graphics2D g2 = (Graphics2D)g;
060 //picker.setPaint(getValue());
061 g2.setPaint(picker.getDisplayPaint(box));
062 g2.fill(box);
063 }
064 public boolean isPaintable() {
065 return true;
066 }
067
068
069 public boolean supportsCustomEditor() {
070 return true;
071 }
072
073 public Component getCustomEditor() {
074 return picker;
075 }
076
077 }