001 package org.jdesktop.swingx.editors;
002
003 import java.awt.Component;
004 import java.awt.Graphics;
005 import java.awt.Image;
006 import java.awt.Rectangle;
007 import java.beans.PropertyChangeEvent;
008 import java.beans.PropertyChangeListener;
009 import java.beans.PropertyEditorSupport;
010
011 /**
012 *
013 * @author joshy
014 */
015 public class ImageURLEditor extends PropertyEditorSupport {
016 Image image = null;
017 String imageURL = null;
018 ImagePicker picker = new ImagePicker();
019 /** Creates a new instance of ImageEditor */
020 public ImageURLEditor() {
021 picker.imageView.addPropertyChangeListener("image",new PropertyChangeListener() {
022 public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
023 image = picker.imageView.getImage();
024 if(picker.imageView.getImageURL() != null) {
025 imageURL = picker.imageView.getImageURL().toString();
026 }
027 firePropertyChange();
028 }
029 });
030 }
031
032 public String getValue() {
033 return imageURL;
034 }
035
036 public void setValue(Object object) {
037 imageURL = (String)object;
038 super.setValue(imageURL);
039 picker.imageView.setImage(image);
040 }
041
042 public void setAsText(String text) throws IllegalArgumentException {
043 // do nothing right now
044 }
045
046 public String getAsText() {
047 return imageURL;
048 }
049
050 public void paintValue(Graphics graphics, Rectangle r) {
051 //graphics.drawImage(image, (int)r.getX(), (int)r.getY(),
052 // (int)r.getWidth(), (int)r.getHeight(), null);
053 }
054
055
056 public boolean isPaintable() {
057 return false;
058 }
059
060 public boolean supportsCustomEditor() {
061 return true;
062 }
063
064 public Component getCustomEditor() {
065 return picker;
066 }
067
068 }