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 }