diff options
Diffstat (limited to 'awt/java/awt/Dimension.java')
-rw-r--r-- | awt/java/awt/Dimension.java | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/awt/java/awt/Dimension.java b/awt/java/awt/Dimension.java new file mode 100644 index 0000000..8137846 --- /dev/null +++ b/awt/java/awt/Dimension.java @@ -0,0 +1,185 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * @author Denis M. Kishenko + * @version $Revision$ + */ +package java.awt; + +import java.awt.geom.Dimension2D; +import java.io.Serializable; + +import org.apache.harmony.misc.HashCode; + +/** + * The Dimension represents the size (width and height) of a component. + * The width and height values can be negative, but in that case the + * behavior of some methods is unexpected. + */ +public class Dimension extends Dimension2D implements Serializable { + + /** The Constant serialVersionUID. */ + private static final long serialVersionUID = 4723952579491349524L; + + /** The width dimension. */ + public int width; + + /** The height dimension. */ + public int height; + + /** + * Instantiates a new Dimension with the same data as the specified Dimension. + * + * @param d the Dimension to copy the data from when creating the + * new Dimension object. + */ + public Dimension(Dimension d) { + this(d.width, d.height); + } + + /** + * Instantiates a new Dimension with zero width and height. + */ + public Dimension() { + this(0, 0); + } + + /** + * Instantiates a new Dimension with the specified width and height. + * + * @param width the width of the new Dimension. + * @param height the height of the new Dimension. + */ + public Dimension(int width, int height) { + setSize(width, height); + } + + /** + * Returns the hash code of the Dimension. + * + * @return the hash code of the Dimension. + */ + @Override + public int hashCode() { + HashCode hash = new HashCode(); + hash.append(width); + hash.append(height); + return hash.hashCode(); + } + + /** + * Compares this Dimension object with the specified object. + * + * @param obj the Object to be compared. + * + * @return true, if the specified Object is a Dimension with + * the same width and height data as this Dimension. + */ + @Override + public boolean equals(Object obj) { + if (obj == this) { + return true; + } + if (obj instanceof Dimension) { + Dimension d = (Dimension)obj; + return (d.width == width && d.height == height); + } + return false; + } + + /** + * Returns the String associated to this Dimension object. + * + * @return the String associated to this Dimension object. + */ + @Override + public String toString() { + // The output format based on 1.5 release behaviour. It could be obtained in the following way + // System.out.println(new Dimension().toString()) + return getClass().getName() + "[width=" + width + ",height=" + height + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + /** + * Sets the size of this Dimension object with the specified width and height. + * + * @param width the width of the Dimension. + * @param height the height of the Dimension. + */ + public void setSize(int width, int height) { + this.width = width; + this.height = height; + } + + /** + * Sets the size of this Dimension object by copying the + * data from the specified Dimension object. + * + * @param d the Dimension that gives the new size values. + */ + public void setSize(Dimension d) { + setSize(d.width, d.height); + } + + /** + * Sets the size of this Dimension object with the specified double width + * and height. + * + * @param width the width of the Dimension. + * @param height the height of the Dimension. + * + * @see java.awt.geom.Dimension2D#setSize(double, double) + */ + @Override + public void setSize(double width, double height) { + setSize((int)Math.ceil(width), (int)Math.ceil(height)); + } + + /** + * Gets the size of the Dimension. + * + * @return the size of the Dimension. + */ + public Dimension getSize() { + return new Dimension(width, height); + } + + /** + * Gets the height of the Dimension. + * + * @return the height of the Dimension. + * + * @see java.awt.geom.Dimension2D#getHeight() + */ + @Override + public double getHeight() { + return height; + } + + /** + * Gets the width of the Dimension. + * + * @return the width of the Dimension. + * + * @see java.awt.geom.Dimension2D#getWidth() + */ + @Override + public double getWidth() { + return width; + } + +} + |