Side of Software
Print Preview Library 1.8.1

sos.preview
Class FitLayout

java.lang.Object
  |
  +--sos.preview.FitLayout
All Implemented Interfaces:
java.awt.LayoutManager, ScalingLayoutManager, ScrollableLayoutManager, java.io.Serializable

public class FitLayout
extends java.lang.Object
implements ScrollableLayoutManager, ScalingLayoutManager, java.io.Serializable

A layout scheme that scales all components such that one dimension of the largest component fits in container's parent. The dimension is specified in the constructor and must be one of the following:

BoxLayout.X_AXISConponent are laid out horizontally.
BoxLayout.Y_AXISConponent are laid out vertically.
BoxLayout.PAGE_AXISConponent are laid out horizontally if the component orientation is not horizontal and vertically otherwise.
BoxLayout.LINE_AXISConponent are laid out horizontally if the component orientation is horizontal and vertically otherwise.

To get the child components to fit the given dimension, the layout may have to scale them. It scales each child component the same amount. If a child component has a smaller preferred size, it will not fill the space allotted to it. In this case, FitLayout uses the horizontal and vertical alignments to position the component within the cell.

The layout honors suggested left, right, top, and bottom margins as well as the spacing between child components. The spacing only applies for the axis being laid out.

The following diagram illustrates the placement of child components along the Y_AXIS and the container's padding:

Since:
1.0
See Also:
FitAllLayout, MatrixLayout, ZoomLayout, ScalingLayoutManager, ScrollableLayoutManager

Constructor Summary
FitLayout(int axis)
          Creates a FitLayout along the specified axis and with default alignments and spacing.
FitLayout(int axis, int horizontalAlignment, int verticalAlignment)
          Creates a FitLayout along the specified axis, with the specified alignments, and with default spacing.
FitLayout(int axis, int spacing, int leftMargin, int rightMargin, int topMargin, int bottomMargin)
          Creates a FitLayout along the specified axis, with the specified spacing, and with default alignments.
FitLayout(int axis, int horizontalAlignment, int verticalAlignment, int spacing, int leftMargin, int rightMargin, int topMargin, int bottomMargin)
          Creates a FitLayout along the specified axis and with the specified alignments and spacing.
 
Method Summary
 void addLayoutComponent(java.lang.String name, java.awt.Component component)
          If the layout manager uses a per-component string, adds the specified component to the layout, associating it with the specified name.
 boolean equals(java.lang.Object obj)
          Indicates whether some other object is "equal to" this one.
 int getAxis()
          Returns the axis that this layout fits in the container.
 java.awt.Dimension getPreferredScrollableViewportSize(java.awt.Container container)
          Returns the specified container's preferred scrollable viewport size.
 int getScrollableBlockIncrement(java.awt.Container container, java.awt.Rectangle rectangle, int orientation, int direction)
          Returns the specified container's scrollable block increment.
 boolean getScrollableTracksViewportHeight(java.awt.Container container)
          Returns true if a viewport should always force the height of the specified container to match the height of the viewport.
 boolean getScrollableTracksViewportWidth(java.awt.Container container)
          Returns true if a viewport should always force the width of the specified container to match the width of the viewport.
 int getScrollableUnitIncrement(java.awt.Container container, java.awt.Rectangle rectangle, int orientation, int direction)
          Returns the specified container's scrollable unit increment.
 int hashCode()
          Returns a hash code value for the object.
 void layoutContainer(java.awt.Container container)
          Lays out the specified container.
 java.awt.Dimension minimumLayoutSize(java.awt.Container container)
          Calculates the minimum size dimensions for the specified container, given the components it contains.
 java.awt.Dimension preferredLayoutSize(java.awt.Container container)
          Calculates the preferred size dimensions for the specified container, given the components it contains.
 double preferredScale(java.awt.Container container)
          Returns the scale of the specified container's components if the container were to get its preferred size.
 void removeLayoutComponent(java.awt.Component component)
          Removes the specified component from the layout.
 double scaleComponents(java.awt.Container container)
          Lays out the container's components and returns the scale factor.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FitLayout

public FitLayout(int axis)
          throws java.lang.IllegalArgumentException
Creates a FitLayout along the specified axis and with default alignments and spacing.

Parameters:
axis - The axis to make fit in the container. Acceptable values are BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.PAGE_AXIS, and BoxLayout.LINE_AXIS.
Throws:
java.lang.IllegalArgumentException - if axis is not an acceptable SwingConstant
See Also:
FitLayout(int,int,int,int,int,int,int,int)

FitLayout

public FitLayout(int axis,
                 int horizontalAlignment,
                 int verticalAlignment)
          throws java.lang.IllegalArgumentException
Creates a FitLayout along the specified axis, with the specified alignments, and with default spacing.

Parameters:
axis - The axis to make fit in the container. Acceptable values are BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.PAGE_AXIS, and BoxLayout.LINE_AXIS.
horizontalAlignment - Horizontal alignment of components that are not as wide as the widest component in the container. Acceptable values are SwingConstants.CENTER, SwingConstants.LEFT, SwingConstants.RIGHT, SwingConstants.LEADING, and SwingConstants.TRAILING.
verticalAlignment - Vertical alignment of components that are not as tall as the tallest component in the container. Acceptable values are SwingConstants.CENTER, SwingConstants.TOP, and SwingConstants.BOTTOM.
Throws:
java.lang.IllegalArgumentException - if axis, horizontalAlignment, or verticalAlignment is not an acceptable SwingConstant
See Also:
FitLayout(int,int,int,int,int,int,int,int)

FitLayout

public FitLayout(int axis,
                 int spacing,
                 int leftMargin,
                 int rightMargin,
                 int topMargin,
                 int bottomMargin)
          throws java.lang.IllegalArgumentException
Creates a FitLayout along the specified axis, with the specified spacing, and with default alignments.

Parameters:
axis - The axis to make fit in the container. Acceptable values are BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.PAGE_AXIS, and BoxLayout.LINE_AXIS.
spacing - Spacing between components
leftMargin - the left margin
rightMargin - the right margin
topMargin - the top margin
bottomMargin - the bottom margin
Throws:
java.lang.IllegalArgumentException - if axis is not an acceptable SwingConstant; or if one of the spacing parameters is negative
See Also:
FitLayout(int,int,int,int,int,int,int,int)

FitLayout

public FitLayout(int axis,
                 int horizontalAlignment,
                 int verticalAlignment,
                 int spacing,
                 int leftMargin,
                 int rightMargin,
                 int topMargin,
                 int bottomMargin)
          throws java.lang.IllegalArgumentException
Creates a FitLayout along the specified axis and with the specified alignments and spacing.

Parameters:
axis - The axis to make fit in the container. Acceptable values are BoxLayout.X_AXIS, BoxLayout.Y_AXIS, BoxLayout.PAGE_AXIS, and BoxLayout.LINE_AXIS.
horizontalAlignment - Horizontal alignment of components that are not as wide as the widest component in the container. Acceptable values are SwingConstants.CENTER, SwingConstants.LEFT, SwingConstants.RIGHT, SwingConstants.LEADING, and SwingConstants.TRAILING.
verticalAlignment - Vertical alignment of components that are not as tall as the tallest component in the container. Acceptable values are SwingConstants.CENTER, SwingConstants.TOP, and SwingConstants.BOTTOM.
spacing - Spacing between components
leftMargin - the left margin
rightMargin - the right margin
topMargin - the top margin
bottomMargin - the bottom margin
Throws:
java.lang.IllegalArgumentException - if axis, horizontalAlignment, or verticalAlignment is not an acceptable SwingConstant; or if one of the spacing parameters is negative
Method Detail

addLayoutComponent

public void addLayoutComponent(java.lang.String name,
                               java.awt.Component component)
If the layout manager uses a per-component string, adds the specified component to the layout, associating it with the specified name.

Specified by:
addLayoutComponent in interface java.awt.LayoutManager
Parameters:
name - the string to be associated with the component
component - the component to be added

equals

public boolean equals(java.lang.Object obj)
Indicates whether some other object is "equal to" this one.

Overrides:
equals in class java.lang.Object
Parameters:
obj - the reference object with which to compare
Returns:
true if this object is the same as obj

getAxis

public int getAxis()
Returns the axis that this layout fits in the container.

Returns:
the axis that this layout fits in the container

getPreferredScrollableViewportSize

public java.awt.Dimension getPreferredScrollableViewportSize(java.awt.Container container)
Description copied from interface: ScrollableLayoutManager
Returns the specified container's preferred scrollable viewport size. The semantics are the same as javax.swing.Scrollable#getPreferredScrollableViewportSize, except the container is a parameter instead of the receiver.

Specified by:
getPreferredScrollableViewportSize in interface ScrollableLayoutManager
Parameters:
container - Container for which the preferred size is requested
Returns:
The preferred scrollable viewport size of container

hashCode

public int hashCode()
Returns a hash code value for the object.

Overrides:
hashCode in class java.lang.Object
Returns:
a hash code value for this object

preferredScale

public double preferredScale(java.awt.Container container)
Description copied from interface: ScalingLayoutManager
Returns the scale of the specified container's components if the container were to get its preferred size.

Specified by:
preferredScale in interface ScalingLayoutManager
Parameters:
container - container for which to calculate the scale
Returns:
the amount this layout manager would scale the specified container's components to achieve the preferred size

getScrollableBlockIncrement

public int getScrollableBlockIncrement(java.awt.Container container,
                                       java.awt.Rectangle rectangle,
                                       int orientation,
                                       int direction)
Description copied from interface: ScrollableLayoutManager
Returns the specified container's scrollable block increment. The semantics are the same as javax.swing.Scrollable#getScrollableBlockIncrement, except the container is a parameter instead of the receiver.

Specified by:
getScrollableBlockIncrement in interface ScrollableLayoutManager
Parameters:
container - The container that is being scrolled
rectangle - The view area visible within the viewport
orientation - The axis of the scrolling--either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL
direction - A negative number to indicate scrolling left or up, or a positive number to indicate scrolling right or down
Returns:
The amount the viewport should scroll as a result of a "block" increment. It should be positive.

getScrollableTracksViewportHeight

public boolean getScrollableTracksViewportHeight(java.awt.Container container)
Description copied from interface: ScrollableLayoutManager
Returns true if a viewport should always force the height of the specified container to match the height of the viewport. The semantics are the same as javax.swing.Scrollable#getScrollableTracksViewportHeight, except the container is a parameter instead of the receiver.

Specified by:
getScrollableTracksViewportHeight in interface ScrollableLayoutManager
Parameters:
container - The container in question
Returns:
true if a viewport should keep the container's height the same height of the viewport

getScrollableTracksViewportWidth

public boolean getScrollableTracksViewportWidth(java.awt.Container container)
Description copied from interface: ScrollableLayoutManager
Returns true if a viewport should always force the width of the specified container to match the width of the viewport. The semantics are the same as javax.swing.Scrollable#getScrollableTracksViewportWidth, except the container is a parameter instead of the receiver.

Specified by:
getScrollableTracksViewportWidth in interface ScrollableLayoutManager
Parameters:
container - The container in question
Returns:
true if a viewport should keep the container's width the same width of the viewport

getScrollableUnitIncrement

public int getScrollableUnitIncrement(java.awt.Container container,
                                      java.awt.Rectangle rectangle,
                                      int orientation,
                                      int direction)
Description copied from interface: ScrollableLayoutManager
Returns the specified container's scrollable unit increment. The semantics are the same as javax.swing.Scrollable#getScrollableUnitIncrement, except the container is a parameter instead of the receiver.

Specified by:
getScrollableUnitIncrement in interface ScrollableLayoutManager
Parameters:
container - The container that is being scrolled
rectangle - The view area visible within the viewport
orientation - The axis of the scrolling--either SwingConstants.VERTICAL or SwingConstants.HORIZONTAL
direction - A negative number to indicate scrolling left or up, or a positive number to indicate scrolling right or down
Returns:
The amount the viewport should scroll as a result of a "unit" increment. It should be positive.

layoutContainer

public void layoutContainer(java.awt.Container container)
Lays out the specified container.

Specified by:
layoutContainer in interface java.awt.LayoutManager
Parameters:
container - the container to be laid out

minimumLayoutSize

public java.awt.Dimension minimumLayoutSize(java.awt.Container container)
Calculates the minimum size dimensions for the specified container, given the components it contains.

Specified by:
minimumLayoutSize in interface java.awt.LayoutManager
Parameters:
container - the container to be laid out
Returns:
the minimum size of container

preferredLayoutSize

public java.awt.Dimension preferredLayoutSize(java.awt.Container container)
Calculates the preferred size dimensions for the specified container, given the components it contains.

Specified by:
preferredLayoutSize in interface java.awt.LayoutManager
Parameters:
container - the container to be laid out
Returns:
the preferred size of container

removeLayoutComponent

public void removeLayoutComponent(java.awt.Component component)
Removes the specified component from the layout.

Specified by:
removeLayoutComponent in interface java.awt.LayoutManager
Parameters:
component - the component to be removed

scaleComponents

public double scaleComponents(java.awt.Container container)
Description copied from interface: ScalingLayoutManager
Lays out the container's components and returns the scale factor.

Specified by:
scaleComponents in interface ScalingLayoutManager
Parameters:
container - container for which to lay out its children
Returns:
the amount the specified container's children were scaled

Side of Software
Print Preview Library 1.8.1

Copyright 2003-07 Side of Software (SOS). All rights reserved.