1
/* ========================================================================
2
* JCommon : a free general purpose class library for the Java(tm) platform
3
* ========================================================================
5
* (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
7
* Project Info: http://www.jfree.org/jcommon/index.html
9
* This library is free software; you can redistribute it and/or modify it
10
* under the terms of the GNU Lesser General Public License as published by
11
* the Free Software Foundation; either version 2.1 of the License, or
12
* (at your option) any later version.
14
* This library is distributed in the hope that it will be useful, but
15
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17
* License for more details.
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with this library; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
24
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25
* in the United States and other countries.]
27
* ---------------------------------
28
* rectangle2DObjectDescription.java
29
* ---------------------------------
30
* (C)opyright 2003, 2004, by Thomas Morgner and Contributors.
32
* Original Author: Thomas Morgner;
33
* Contributor(s): David Gilbert (for Object Refinery Limited);
35
* $Id: Rectangle2DObjectDescription.java,v 1.3 2005/11/14 11:03:47 mungady Exp $
37
* Changes (from 19-Feb-2003)
38
* -------------------------
39
* 19-Feb-2003 : Added standard header and Javadocs (DG);
40
* 29-Apr-2003 : Distilled from the JFreeReport project and moved into JCommon
44
package org.jfree.xml.factory.objects;
46
import java.awt.geom.Rectangle2D;
49
* An object-description for a <code>Rectangle2D</code> object.
51
* @author Thomas Morgner
53
public class Rectangle2DObjectDescription extends AbstractObjectDescription {
56
* Creates a new object description.
58
public Rectangle2DObjectDescription() {
59
super(Rectangle2D.class);
60
setParameterDefinition("width", Float.class);
61
setParameterDefinition("height", Float.class);
62
setParameterDefinition("x", Float.class);
63
setParameterDefinition("y", Float.class);
67
* Creates an object based on this description.
71
public Object createObject() {
72
final Rectangle2D rect = new Rectangle2D.Float();
74
final float w = getFloatParameter("width");
75
final float h = getFloatParameter("height");
76
final float x = getFloatParameter("x");
77
final float y = getFloatParameter("y");
78
rect.setRect(x, y, w, h);
83
* Returns a parameter value as a float.
85
* @param param the parameter name.
87
* @return The float value.
89
private float getFloatParameter(final String param) {
90
final Float p = (Float) getParameter(param);
94
return p.floatValue();
98
* Sets the parameters of this description object to match the supplied object.
100
* @param o the object (should be an instance of <code>Rectangle2D</code>).
102
* @throws ObjectFactoryException if the object is not an instance of <code>Rectangle2D</code>.
104
public void setParameterFromObject(final Object o) throws ObjectFactoryException {
105
if (!(o instanceof Rectangle2D)) {
106
throw new ObjectFactoryException("The given object is no java.awt.geom.Rectangle2D.");
109
final Rectangle2D rect = (Rectangle2D) o;
110
final float x = (float) rect.getX();
111
final float y = (float) rect.getY();
112
final float w = (float) rect.getWidth();
113
final float h = (float) rect.getHeight();
115
setParameter("x", new Float(x));
116
setParameter("y", new Float(y));
117
setParameter("width", new Float(w));
118
setParameter("height", new Float(h));