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 }