diff options
Diffstat (limited to 'libjava/javax/swing/Spring.java')
-rw-r--r-- | libjava/javax/swing/Spring.java | 580 |
1 files changed, 0 insertions, 580 deletions
diff --git a/libjava/javax/swing/Spring.java b/libjava/javax/swing/Spring.java deleted file mode 100644 index 4255e86..0000000 --- a/libjava/javax/swing/Spring.java +++ /dev/null @@ -1,580 +0,0 @@ -/* Spring.java -- - Copyright (C) 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - -package javax.swing; - -/** - * Calculates the space between component edges, that are layed out by - * {@link SpringLayout}. - * <p> - * A Spring defines a minimum, preferred and maximum distance for each edge - * (north, east, south, west) of a component. - * </p> - * However, springs are not static, their actual values are computed at - * runtime. That means, if a Spring C is defined as the sum of Spring A and - * Spring B, then the values (min, pref and max) are not calculated at - * creation of Spring C, but instead always when {@link #getValue} is - * called. So, when Spring A or Spring B changes, this is reflected in - * Spring C. - * - * @author Roman Kennke (roman@ontographics.com) - */ -public abstract class Spring -{ - - /** Indicates a not-set value. **/ - public static final int UNSET = -2147483648; - - /** - * Creates a new Spring object. This constructor is used by the static - * methods which create Springs. - */ - protected Spring() - { - } - - /** - * Creates a Spring which min, pref and max values are all the same. - * These kind of Springs are 'struts'. - * - * @param val the constant for min, pref and max values. - * @return a Spring object with constant values for min, pref and max. - */ - public static Spring constant(int val) - { - return new SimpleSpring(val, val, val); - } - - /** Creates a Spring which min, pref and max values are constants. - * @param min the constant for the minimum value. - * @param pref the constant for the preferred value. - * @param max the constant for the maximum value. - * @return a Spring object with constant values for min, pref and max. - */ - public static Spring constant(int min, int pref, int max) - { - return new SimpleSpring(min, pref, max); - } - - /** - * Returns the maximum value of the Spring. - * - * @return the maximum value. - */ - public abstract int getMaximumValue(); - - /** - * Returns the minimum value of this Spring. - * - * @return the minimum value. - */ - public abstract int getMinimumValue(); - - /** - * Return the preferred value of this Spring. - * - * @return the preferred value. - */ - public abstract int getPreferredValue(); - - /** - * Return the actual value of this Spring. - * - * @return the actual value of this Spring. - */ - public abstract int getValue(); - - /** - * Creates and returns a Spring, which always has the maximum values - * min = max(min_s1, min_s2), pref = max(pref_s1, pref_s2), max = - * max(max_s1, max_s2). - * - * @param s1 the first summand of the max Spring. - * @param s2 the second summand of the max Spring. - * @return a Spring which is max(s1, s2). - */ - public static Spring max(Spring s1, Spring s2) - { - return new MaxSpring(s1, s2); - } - - /** - * Creates and returns a Spring, which is always the negation of s. - * min = -min_s, pref = -pref_s, max = -max_pref. - * - * @param s the Spring to be negated. - * @return the negative of <code>s</code>. - */ - public static Spring minus(Spring s) - { - return new MinusSpring(s); - } - - /** - * Sets the actual value. If <code>value</code> is out of the (min, max) - * bounds, then the value is adjusted, so that is inside these bounds. - * - * @param value the value to be set. - */ - public abstract void setValue(int value); - - /** - * Creates and returns a Spring, which is always the sum of s1 and s2. - * min_sum = min_s1 + min_s2, pref_sum = pref_s1 + pref_s2, max_sum = - * max_s1 + max_s2. - * - * @param s1 the 1st summand of the sum Spring. - * @param s2 the 2nd summand of the sum Spring. - * @return a sum which is <code>s1 + s2</code>. - */ - public static Spring sum(Spring s1, Spring s2) - { - return new AddSpring(s1, s2); - } - - /** - * A simple Spring, that holds constant values for min, pref and max. - * - * @author Roman Kennke (roman@ontographics.com) - */ - private static final class SimpleSpring extends Spring - { - - /** The constant value for min. */ - private final int min; - - /** The constant value for pref. */ - private final int pref; - - /** The constant value for max. */ - private final int max; - - /** The actual value of the spring. */ - private int value; - - /** - * Creates a new SimpleSpring object. - * - * @param min the constant minimum value. - * @param pref the constant preferred value. - * @param max the constant maximum value. - */ - public SimpleSpring(int newMin, int newPref, int newMax) - { - min = newMin; - pref = newPref; - max = newMax; - value = Spring.UNSET; - } - - /** - * Returns the maximum value of this Spring. - * - * @return the maximum value. - */ - public int getMaximumValue() - { - return max; - } - - /** - * Returns the minimum value of this Spring. - * - * @return the minimum value. - */ - public int getMinimumValue() - { - return min; - } - - /** - * Returns the preferred value of this Spring. - * - * @return the preferred value. - */ - public int getPreferredValue() - { - return pref; - } - - /** - * Return the actual current value of this Spring. - * - * @return the current value. - */ - public int getValue() - { - - if (value == Spring.UNSET) - { - value = pref; - } - - return value; - } - - /** - * Sets the current value. - * - * @param val the value to be set. - */ - public void setValue(int val) - { - - if (val > max) - { - value = max; - } - else if (val < min) - { - value = min; - } - else - { - value = val; - } - } - - } - - - /** - * A Spring, that is the sum of two other Springs. - * - * @author Roman Kennke (roman@ontographics.com) - */ - private static final class AddSpring extends Spring - { - - /** The springs, that are the 'operands' of this Spring. */ - private final Spring s1; - private final Spring s2; - - /** The current value for this Spring. */ - private int value; - - /** - * Creates a new AddSpring object. - * - * @param s1 the first operand. - * @param s2 the second operand. - */ - protected AddSpring(Spring s1, Spring s2) - { - super(); - this.s1 = s1; - this.s2 = s2; - value = Spring.UNSET; - } - - /** - * Returns the maximum value of this Spring. - * - * @return the maximum value. - */ - public int getMaximumValue() - { - int max1 = s1.getMaximumValue(); - int max2 = s2.getMaximumValue(); - return max1 + max2; - } - - /** - * Return the minimum value of this Spring. - * - * @return the minimum value. - */ - public int getMinimumValue() - { - int min1 = s1.getMinimumValue(); - int min2 = s2.getMinimumValue(); - return min1 + min2; - } - - /** - * Returns the preferred value of this Spring. - * - * @return the preferred value. - */ - public int getPreferredValue() - { - int pref1 = s1.getPreferredValue(); - int pref2 = s2.getPreferredValue(); - return pref1 + pref2; - } - - /** - * Returns the actual current value of this Spring. - * - * @return the current value of this Spring. - */ - public int getValue() - { - if (value == Spring.UNSET) - { - int val1 = s1.getValue(); - int val2 = s2.getValue(); - value = val1 + val2; - } - return value; - } - - /** - * Sets the current value. - * - * @param val the value to be set. - */ - public void setValue(int val) - { - - if (val > getMaximumValue()) - { - value = getMaximumValue(); - } - else if (val < getMinimumValue()) - { - value = getMinimumValue(); - } - else - { - value = val; - } - - } - - } - - - /** - * A Spring that is calculated as the negation of another Spring. - * - * @author Roman Kennke (roman@ontographics.com) - */ - private static final class MinusSpring extends Spring - { - - /** The Spring from which to calculate the negation. */ - private final Spring s; - - /** The current value of this Spring. */ - private int value; - - /** - * Creates a new MinusSpring object. - * @param s the Spring from which to calculate the negation. - */ - protected MinusSpring(Spring s) - { - super(); - this.s = s; - value = Spring.UNSET; - } - - /** Returns the maximum value of this Spring. - * - * @return the maximum value. - */ - public int getMaximumValue() - { - return -s.getMinimumValue(); - } - - /** - * Returns the minimum value of this Spring. - * - * @return the minimum value. - */ - public int getMinimumValue() - { - return -s.getMaximumValue(); - } - - /** - * Returns the preferred value of this Spring. - * - * @return the preferred value. - */ - public int getPreferredValue() - { - return -s.getPreferredValue(); - } - - /** - * Returns the current value of this Spring. - * - * @return the current value. - */ - public int getValue() - { - if (value == Spring.UNSET) - { - value = -s.getValue(); - } - return value; - } - - /** - * Sets the current value. - * - * @param val the value to be set. - */ - public void setValue(int val) - { - - if (val > getMaximumValue()) - { - value = getMaximumValue(); - } - else if (val < getMinimumValue()) - { - value = getMinimumValue(); - } - else - { - value = val; - } - - } - - } - - - /** - * A Spring, that is calculated as the maximum of two Springs. - * - * @author Roman Kennke (roman@ontographics.com) - */ - private static final class MaxSpring extends Spring - { - - /** The two other Springs from which to calculate the maximum. */ - private final Spring s1; - private final Spring s2; - - /** The current value of this Spring. */ - private int value; - - /** - * Creates a new MaxSpring object. - * - * @param s1 the 1st operand. - * @param s2 the 2nd operand. - */ - protected MaxSpring(Spring s1, Spring s2) - { - super(); - this.s1 = s1; - this.s2 = s2; - value = Spring.UNSET; - } - - - /** - * Returns the maximum value of this Spring. - * - * @return the maximum value. - */ - public int getMaximumValue() - { - int max1 = s1.getMaximumValue(); - int max2 = s2.getMaximumValue(); - return Math.max(max1, max2); - } - - /** - * Returns the minimum value of this Spring. - * - * @return the minimum value. - */ - public int getMinimumValue() - { - int min1 = s1.getMinimumValue(); - int min2 = s2.getMinimumValue(); - return Math.max(min1, min2); - } - - /** - * Returns the preferred value of this Spring. - * - * @return the preferred value. - */ - public int getPreferredValue() - { - int pref1 = s1.getPreferredValue(); - int pref2 = s2.getPreferredValue(); - return Math.max(pref1, pref2); - } - - /** - * Returns the actual value of this Spring. - * - * @return the current value. - */ - public int getValue() - { - if (value == Spring.UNSET) - { - int val1 = s1.getValue(); - int val2 = s2.getValue(); - value = Math.max(val1, val2); - } - return value; - } - - /** - * Sets the current value. - * - * @param val the value to be set. - */ - public void setValue(int val) - { - - if (val > getMaximumValue()) - { - value = getMaximumValue(); - } - else if (val < getMinimumValue()) - { - value = getMinimumValue(); - } - else - { - value = val; - } - } - } -} |