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