001 /* 002 * DimensionPropertyEditor.java 003 * 004 * Created on August 16, 2006, 12:18 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.Dimension; 013 import java.beans.PropertyEditorSupport; 014 015 /** 016 * 017 * @author joshy 018 */ 019 public class DimensionPropertyEditor extends PropertyEditorSupport { 020 021 public DimensionPropertyEditor() { 022 } 023 024 public Dimension getValue() { 025 return (Dimension)super.getValue(); 026 } 027 028 public String getJavaInitializationString() { 029 Dimension point = getValue(); 030 return point == null ? "null" : "new java.awt.Dimension(" + point.width + ", " + point.height + ")"; 031 } 032 033 public void setAsText(String text) throws IllegalArgumentException { 034 String originalParam = text; 035 try { 036 Dimension val = (Dimension)PropertyEditorUtil.createValueFromString( 037 text, 2, Dimension.class, int.class); 038 setValue(val); 039 } catch (Exception ex) { 040 System.out.println(ex.getMessage()); 041 ex.printStackTrace(); 042 throw new IllegalArgumentException("The input value " + originalParam + " is not formatted correctly. Please " + 043 "try something of the form [w,h] or [w , h] or [w h]", ex); 044 } 045 } 046 047 public String getAsText() { 048 Dimension dim = getValue(); 049 return dim == null ? "[]" : "[" + dim.width + ", " + dim.height + "]"; 050 } 051 052 } 053