/* * DimensionPropertyEditor.java * * Created on August 16, 2006, 12:18 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package org.jdesktop.beans.editors; import java.awt.Dimension; import java.beans.PropertyEditorSupport; /** * * @author joshy */ public class DimensionPropertyEditor extends PropertyEditorSupport { public DimensionPropertyEditor() { } @Override public Dimension getValue() { return (Dimension)super.getValue(); } @Override public String getJavaInitializationString() { Dimension point = getValue(); return point == null ? "null" : "new java.awt.Dimension(" + point.width + ", " + point.height + ")"; } @Override public void setAsText(String text) throws IllegalArgumentException { String originalParam = text; try { Dimension val = (Dimension)PropertyEditorUtil.createValueFromString( text, 2, Dimension.class, int.class); setValue(val); } catch (Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + "try something of the form [w,h] or [w , h] or [w h]", ex); } } @Override public String getAsText() { Dimension dim = getValue(); return dim == null ? "[]" : "[" + dim.width + ", " + dim.height + "]"; } }