001 /*
002 * ImageEditor.java
003 *
004 * Created on July 21, 2006, 1:35 AM
005 *
006 * To change this template, choose Tools | Template Manager
007 * and open the template in the editor.
008 */
009
010 package org.jdesktop.swingx.editors;
011
012 import java.awt.Component;
013 import java.awt.Graphics;
014 import java.awt.Image;
015 import java.awt.Rectangle;
016 import java.beans.PropertyChangeEvent;
017 import java.beans.PropertyChangeListener;
018 import java.beans.PropertyEditorSupport;
019 import javax.swing.JButton;
020
021 /**
022 *
023 * @author joshy
024 */
025 public class ImageEditor extends PropertyEditorSupport {
026 Image image = null;
027 ImagePicker picker = new ImagePicker();
028 /** Creates a new instance of ImageEditor */
029 public ImageEditor() {
030 picker.imageView.addPropertyChangeListener("image",new PropertyChangeListener() {
031 public void propertyChange(PropertyChangeEvent propertyChangeEvent) {
032 image = picker.imageView.getImage();
033 firePropertyChange();
034 }
035 });
036 }
037
038 public Image getValue() {
039 return image;
040 }
041
042 public void setValue(Object object) {
043 image = (Image)object;
044 super.setValue(image);
045 picker.imageView.setImage(image);
046 }
047
048 public void setAsText(String text) throws IllegalArgumentException {
049 // do nothing right now
050 }
051
052 public String getAsText() {
053 return "an Image";
054 }
055
056 public void paintValue(Graphics graphics, Rectangle r) {
057 graphics.drawImage(image, (int)r.getX(), (int)r.getY(),
058 (int)r.getWidth(), (int)r.getHeight(), null);
059 }
060
061
062 public boolean isPaintable() {
063 return true;
064 }
065
066 public boolean supportsCustomEditor() {
067 return true;
068 }
069
070 public Component getCustomEditor() {
071 return picker;
072 }
073
074 }