javax.swing

Class ViewportLayout

Implemented Interfaces:
LayoutManager, Serializable

public class ViewportLayout
extends Object
implements LayoutManager, Serializable

ViewportLayout
See Also:
Serialized Form

Constructor Summary

ViewportLayout()

Method Summary

void
addLayoutComponent(String name, Component c)
Adds the specified component to the layout group.
void
layoutContainer(Container parent)
Layout the view and viewport to respect the following rules.
Dimension
minimumLayoutSize(Container parent)
Calculates the minimum size for this container, taking into account the components it contains.
Dimension
preferredLayoutSize(Container parent)
Calculates the preferred size for this container, taking into account the components it contains.
void
removeLayoutComponent(Component c)
Removes the specified component from the layout group.

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

ViewportLayout

public ViewportLayout()

Method Details

addLayoutComponent

public void addLayoutComponent(String name,
                               Component c)
Adds the specified component to the layout group.
Specified by:
addLayoutComponent in interface LayoutManager
Parameters:
name - the name of the component to add

layoutContainer

public void layoutContainer(Container parent)
Layout the view and viewport to respect the following rules. These are not precisely the rules described in sun's javadocs, but they are the rules which sun's swing implementation follows, if you watch its behavior:
  1. If the port is larger than the view's minimum size, put the port at view position (0,0) and make the view's size equal to the port's.
  2. If the port is smaller than the view, leave the view at its minimum size. also, do not move the port, unless the port extends into space past the edge of the view. If so, move the port up or to the left, in view space, by the amount of empty space (keep the lower and right edges lined up)
Specified by:
layoutContainer in interface LayoutManager

minimumLayoutSize

public Dimension minimumLayoutSize(Container parent)
Calculates the minimum size for this container, taking into account the components it contains.
Specified by:
minimumLayoutSize in interface LayoutManager
Parameters:
parent - the parent container to lay out
Returns:
the minimum dimensions of this container

preferredLayoutSize

public Dimension preferredLayoutSize(Container parent)
Calculates the preferred size for this container, taking into account the components it contains.
Specified by:
preferredLayoutSize in interface LayoutManager
Parameters:
parent - the parent container to lay out
Returns:
the preferred dimensions of this container

removeLayoutComponent

public void removeLayoutComponent(Component c)
Removes the specified component from the layout group.
Specified by:
removeLayoutComponent in interface LayoutManager
Parameters:

ViewportLayout.java -- Copyright (C) 2002, 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.