001 /*
002 * RectanglePropertyEditor.java
003 *
004 * Created on August 16, 2006, 12:13 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.Rectangle;
013 import java.awt.geom.Rectangle2D;
014 import java.beans.PropertyEditorSupport;
015 import java.lang.reflect.Constructor;
016 import java.lang.reflect.InvocationTargetException;
017
018
019 /**
020 *
021 * @author joshy
022 */
023 public class RectanglePropertyEditor extends PropertyEditorSupport {
024
025 /** Creates a new instance of Rectangle2DPropertyEditor */
026 public RectanglePropertyEditor() {
027 }
028
029 public Rectangle getValue() {
030 return (Rectangle)super.getValue();
031 }
032
033 public String getJavaInitializationString() {
034 Rectangle rect = getValue();
035 return rect == null ? "null" : "new java.awt.Rectangle(" + rect.getX() + ", " + rect.getY() + ", " + rect.getWidth() + ", " + rect.getHeight() + ")";
036 }
037
038 public void setAsText(String text) throws IllegalArgumentException {
039 String originalParam = text;
040 try {
041 Rectangle val = (Rectangle)PropertyEditorUtil.createValueFromString(text, 4, Rectangle.class, int.class);
042 setValue(val);
043 } catch (Throwable e) {
044 System.out.println(e.getMessage());
045 e.printStackTrace();
046 throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " +
047 "try something of the form [x,y,w,h] or [x , y , w , h] or [x y w h]", e);
048 }
049 }
050
051
052 public String getAsText() {
053 Rectangle rect = getValue();
054 return rect == null ? "[]" : "[" + rect.x + ", " + rect.y + ", " + rect.width + ", " + rect.height + "]";
055 }
056
057 }