001 /*
002 * Sun Public License Notice
003 *
004 * The contents of this file are subject to the Sun Public License
005 * Version 1.0 (the "License"). You may not use this file except in
006 * compliance with the License. A copy of the License is available at
007 * http://www.sun.com/
008 *
009 * The Original Code is NetBeans. The Initial Developer of the Original
010 * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
011 * Microsystems, Inc. All Rights Reserved.
012 */
013
014 package jagafa.util.view;
015
016 import java.awt.Dimension;
017 import java.awt.Point;
018
019 /** An that encapsulates position and (optionally) size for
020 * Absolute positioning of components.
021 *
022 * @see AbsoluteLayout
023 * @version 1.01, Aug 19, 1998
024 */
025 public class AbsConstr implements java.io.Serializable {
026 /** generated Serialized Version UID */
027 static final long serialVersionUID = 5261460716622152494L;
028
029 /** The X position of the component */
030 public int x;
031 /** The Y position of the component */
032 public int y;
033 /** The width of the component or -1 if the component's preferred width should be used */
034 public int width = -1;
035 /** The height of the component or -1 if the component's preferred height should be used */
036 public int height = -1;
037
038 /** Creates a new AbsoluteConstraints for specified position.
039 * @param pos The position to be represented by this AbsoluteConstraints
040 */
041 public AbsConstr(Point pos) {
042 this (pos.x, pos.y);
043 }
044
045 /** Creates a new AbsoluteConstraints for specified position.
046 * @param x The X position to be represented by this AbsoluteConstraints
047 * @param y The Y position to be represented by this AbsoluteConstraints
048 */
049 public AbsConstr(int x, int y) {
050 this.x = x;
051 this.y = y;
052 }
053
054 /** Creates a new AbsoluteConstraints for specified position and size.
055 * @param pos The position to be represented by this AbsoluteConstraints
056 * @param size The size to be represented by this AbsoluteConstraints or null
057 * if the component's preferred size should be used
058 */
059 public AbsConstr(Point pos, Dimension size) {
060 this.x = pos.x;
061 this.y = pos.y;
062 if (size != null) {
063 this.width = size.width;
064 this.height = size.height;
065 }
066 }
067
068 /** Creates a new AbsoluteConstraints for specified position and size.
069 * @param x The X position to be represented by this AbsoluteConstraints
070 * @param y The Y position to be represented by this AbsoluteConstraints
071 * @param width The width to be represented by this AbsoluteConstraints or -1 if the
072 * component's preferred width should be used
073 * @param height The height to be represented by this AbsoluteConstraints or -1 if the
074 * component's preferred height should be used
075 */
076 public AbsConstr(int x, int y, int width, int height) {
077 this.x = x;
078 this.y = y;
079 this.width = width;
080 this.height = height;
081 }
082
083 /** @return The X position represented by this AbsoluteConstraints */
084 public int getX () {
085 return x;
086 }
087
088 /** @return The Y position represented by this AbsoluteConstraints */
089 public int getY () {
090 return y;
091 }
092
093 /** @return The width represented by this AbsoluteConstraints or -1 if the
094 * component's preferred width should be used
095 */
096 public int getWidth () {
097 return width;
098 }
099
100 /** @return The height represented by this AbsoluteConstraints or -1 if the
101 * component's preferred height should be used
102 */
103 public int getHeight () {
104 return height;
105 }
106
107 public String toString () {
108 return super.toString () +" [x="+x+", y="+y+", width="+width+", height="+height+"]";
109 }
110
111 }
112