- /*
- * @(#)Insets.java 1.30 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package java.awt;
-
- /**
- * An <code>Insets</code> object is a representation of the borders
- * of a container. It specifies the space that a container must leave
- * at each of its edges. The space can be a border, a blank space, or
- * a title.
- *
- * @version 1.30, 12/19/03
- * @author Arthur van Hoff
- * @author Sami Shaio
- * @see java.awt.LayoutManager
- * @see java.awt.Container
- * @since JDK1.0
- */
- public class Insets implements Cloneable, java.io.Serializable {
-
- /**
- * The inset from the top.
- * This value is added to the Top of the rectangle
- * to yield a new location for the Top.
- *
- * @serial
- * @see #clone()
- */
- public int top;
-
- /**
- * The inset from the left.
- * This value is added to the Left of the rectangle
- * to yield a new location for the Left edge.
- *
- * @serial
- * @see #clone()
- */
- public int left;
-
- /**
- * The inset from the bottom.
- * This value is subtracted from the Bottom of the rectangle
- * to yield a new location for the Bottom.
- *
- * @serial
- * @see #clone()
- */
- public int bottom;
-
- /**
- * The inset from the right.
- * This value is subtracted from the Right of the rectangle
- * to yield a new location for the Right edge.
- *
- * @serial
- * @see #clone()
- */
- public int right;
-
- /*
- * JDK 1.1 serialVersionUID
- */
- private static final long serialVersionUID = -2272572637695466749L;
-
- static {
- /* ensure that the necessary native libraries are loaded */
- Toolkit.loadLibraries();
- if (!GraphicsEnvironment.isHeadless()) {
- initIDs();
- }
- }
-
- /**
- * Creates and initializes a new <code>Insets</code> object with the
- * specified top, left, bottom, and right insets.
- * @param top the inset from the top.
- * @param left the inset from the left.
- * @param bottom the inset from the bottom.
- * @param right the inset from the right.
- */
- public Insets(int top, int left, int bottom, int right) {
- this.top = top;
- this.left = left;
- this.bottom = bottom;
- this.right = right;
- }
-
- /**
- * Set top, left, bottom, and right to the specified values
- *
- * @param top the inset from the top.
- * @param left the inset from the left.
- * @param bottom the inset from the bottom.
- * @param right the inset from the right.
- * @since 1.5
- */
- public void set(int top, int left, int bottom, int right) {
- this.top = top;
- this.left = left;
- this.bottom = bottom;
- this.right = right;
- }
-
- /**
- * Checks whether two insets objects are equal. Two instances
- * of <code>Insets</code> are equal if the four integer values
- * of the fields <code>top</code>, <code>left</code>,
- * <code>bottom</code>, and <code>right</code> are all equal.
- * @return <code>true</code> if the two insets are equal;
- * otherwise <code>false</code>.
- * @since JDK1.1
- */
- public boolean equals(Object obj) {
- if (obj instanceof Insets) {
- Insets insets = (Insets)obj;
- return ((top == insets.top) && (left == insets.left) &&
- (bottom == insets.bottom) && (right == insets.right));
- }
- return false;
- }
-
- /**
- * Returns the hash code for this Insets.
- *
- * @return a hash code for this Insets.
- */
- public int hashCode() {
- int sum1 = left + bottom;
- int sum2 = right + top;
- int val1 = sum1 * (sum1 + 1)/2 + left;
- int val2 = sum2 * (sum2 + 1)/2 + top;
- int sum3 = val1 + val2;
- return sum3 * (sum3 + 1)/2 + val2;
- }
-
- /**
- * Returns a string representation of this <code>Insets</code> object.
- * This method is intended to be used only for debugging purposes, and
- * the content and format of the returned string may vary between
- * implementations. The returned string may be empty but may not be
- * <code>null</code>.
- *
- * @return a string representation of this <code>Insets</code> object.
- */
- public String toString() {
- return getClass().getName() + "[top=" + top + ",left=" + left + ",bottom=" + bottom + ",right=" + right + "]";
- }
-
- /**
- * Create a copy of this object.
- * @return a copy of this <code>Insets</code> object.
- */
- public Object clone() {
- try {
- return super.clone();
- } catch (CloneNotSupportedException e) {
- // this shouldn't happen, since we are Cloneable
- throw new InternalError();
- }
- }
- /**
- * Initialize JNI field and method IDs
- */
- private static native void initIDs();
-
- }