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 }