jdk/src/share/classes/java/awt/LayoutManager2.java
changeset 2 90ce3da70b43
child 5506 202f599c92aa
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/java/awt/LayoutManager2.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,87 @@
+/*
+ * Copyright 1996-2001 Sun Microsystems, Inc.  All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun in the LICENSE file that accompanied this code.
+ *
+ * This code 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
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+package java.awt;
+
+/**
+ * Defines an interface for classes that know how to layout Containers
+ * based on a layout constraints object.
+ *
+ * This interface extends the LayoutManager interface to deal with layouts
+ * explicitly in terms of constraint objects that specify how and where
+ * components should be added to the layout.
+ * <p>
+ * This minimal extension to LayoutManager is intended for tool
+ * providers who wish to the creation of constraint-based layouts.
+ * It does not yet provide full, general support for custom
+ * constraint-based layout managers.
+ *
+ * @see LayoutManager
+ * @see Container
+ *
+ * @author      Jonni Kanerva
+ */
+public interface LayoutManager2 extends LayoutManager {
+
+    /**
+     * Adds the specified component to the layout, using the specified
+     * constraint object.
+     * @param comp the component to be added
+     * @param constraints  where/how the component is added to the layout.
+     */
+    void addLayoutComponent(Component comp, Object constraints);
+
+    /**
+     * Calculates the maximum size dimensions for the specified container,
+     * given the components it contains.
+     * @see java.awt.Component#getMaximumSize
+     * @see LayoutManager
+     */
+    public Dimension maximumLayoutSize(Container target);
+
+    /**
+     * Returns the alignment along the x axis.  This specifies how
+     * the component would like to be aligned relative to other
+     * components.  The value should be a number between 0 and 1
+     * where 0 represents alignment along the origin, 1 is aligned
+     * the furthest away from the origin, 0.5 is centered, etc.
+     */
+    public float getLayoutAlignmentX(Container target);
+
+    /**
+     * Returns the alignment along the y axis.  This specifies how
+     * the component would like to be aligned relative to other
+     * components.  The value should be a number between 0 and 1
+     * where 0 represents alignment along the origin, 1 is aligned
+     * the furthest away from the origin, 0.5 is centered, etc.
+     */
+    public float getLayoutAlignmentY(Container target);
+
+    /**
+     * Invalidates the layout, indicating that if the layout manager
+     * has cached information it should be discarded.
+     */
+    public void invalidateLayout(Container target);
+
+}