src/share/classes/javax/swing/SpringLayout.java

Print this page


   1 /*
   2  * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 167  * The asymptotic complexity of the layout operation of a <code>SpringLayout</code>
 168  * is linear in the number of constraints (and/or components).
 169  * <p>
 170  * <strong>Warning:</strong>
 171  * Serialized objects of this class will not be compatible with
 172  * future Swing releases. The current serialization support is
 173  * appropriate for short term storage or RMI between applications running
 174  * the same version of Swing.  As of 1.4, support for long term storage
 175  * of all JavaBeans&trade;
 176  * has been added to the <code>java.beans</code> package.
 177  * Please see {@link java.beans.XMLEncoder}.
 178  *
 179  * @see Spring
 180  * @see SpringLayout.Constraints
 181  *
 182  * @author      Philip Milne
 183  * @author      Scott Violet
 184  * @author      Joe Winchester
 185  * @since       1.4
 186  */

 187 public class SpringLayout implements LayoutManager2 {
 188     private Map<Component, Constraints> componentConstraints = new HashMap<Component, Constraints>();
 189 
 190     private Spring cyclicReference = Spring.constant(Spring.UNSET);
 191     private Set<Spring> cyclicSprings;
 192     private Set<Spring> acyclicSprings;
 193 
 194 
 195     /**
 196      * Specifies the top edge of a component's bounding rectangle.
 197      */
 198     public static final String NORTH  = "North";
 199 
 200     /**
 201      * Specifies the bottom edge of a component's bounding rectangle.
 202      */
 203     public static final String SOUTH  = "South";
 204 
 205     /**
 206      * Specifies the right edge of a component's bounding rectangle.


   1 /*
   2  * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any


 167  * The asymptotic complexity of the layout operation of a <code>SpringLayout</code>
 168  * is linear in the number of constraints (and/or components).
 169  * <p>
 170  * <strong>Warning:</strong>
 171  * Serialized objects of this class will not be compatible with
 172  * future Swing releases. The current serialization support is
 173  * appropriate for short term storage or RMI between applications running
 174  * the same version of Swing.  As of 1.4, support for long term storage
 175  * of all JavaBeans&trade;
 176  * has been added to the <code>java.beans</code> package.
 177  * Please see {@link java.beans.XMLEncoder}.
 178  *
 179  * @see Spring
 180  * @see SpringLayout.Constraints
 181  *
 182  * @author      Philip Milne
 183  * @author      Scott Violet
 184  * @author      Joe Winchester
 185  * @since       1.4
 186  */
 187 @SuppressWarnings("serial") // Same-version serialization only
 188 public class SpringLayout implements LayoutManager2 {
 189     private Map<Component, Constraints> componentConstraints = new HashMap<Component, Constraints>();
 190 
 191     private Spring cyclicReference = Spring.constant(Spring.UNSET);
 192     private Set<Spring> cyclicSprings;
 193     private Set<Spring> acyclicSprings;
 194 
 195 
 196     /**
 197      * Specifies the top edge of a component's bounding rectangle.
 198      */
 199     public static final String NORTH  = "North";
 200 
 201     /**
 202      * Specifies the bottom edge of a component's bounding rectangle.
 203      */
 204     public static final String SOUTH  = "South";
 205 
 206     /**
 207      * Specifies the right edge of a component's bounding rectangle.