Side of Software
Print Preview Library 1.8.1

sos.preview
Class ZoomLayout

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

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

A layout scheme that scales components a fixed amount. ZoomLayout arranges as many scaled child components across the width of the container as possible, respecting the left margin, right margin, and horizontal spacing constraints. It scales each child component the same amount. If a child component has a smaller preferred size, ZoomLayout uses the horizontal and vertical alignments to position it relative to the other components.

The following diagram illustrates the placement of child components when at most than one child will not fit in the container's width:

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

Constructor Summary
ZoomLayout()
          Creates a ZoomLayout with a scale of 1.0 and default alignments and spacing.
ZoomLayout(double scale)
          Creates a ZoomLayout with the specified scale and with default alignments and spacing.
ZoomLayout(double scale, int horizontalAlignment, int verticalAlignment)
          Creates a ZoomLayout with the specified scale and alignments and with default spacing.
ZoomLayout(double scale, int horizontalSpacing, int verticalSpacing, int minLeftMargin, int minRightMargin, int minTopMargin, int minBottomMargin)
          Creates a ZoomLayout with the specified scale and specified spacing and with default alignments.
ZoomLayout(double scale, int horizontalAlignment, int verticalAlignment, int horizontalSpacing, int verticalSpacing, int minLeftMargin, int minRightMargin, int minTopMargin, int minBottomMargin)
          Creates a ZoomLayout with the specified scale, 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.
 java.awt.Dimension getPreferredScrollableViewportSize(java.awt.Container container)
          Returns the specified container's preferred scrollable viewport size.
 double getScale()
          Returns this zoom layout's scale.
 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

ZoomLayout

public ZoomLayout()
Creates a ZoomLayout with a scale of 1.0 and default alignments and spacing.

See Also:
ZoomLayout(double,int,int,int,int,int,int,int,int)

ZoomLayout

public ZoomLayout(double scale)
           throws java.lang.IllegalArgumentException
Creates a ZoomLayout with the specified scale and with default alignments and spacing.

Parameters:
scale - amount to scale a container's components
Throws:
java.lang.IllegalArgumentException - if scale <= 0.0
See Also:
ZoomLayout(double,int,int,int,int,int,int,int,int)

ZoomLayout

public ZoomLayout(double scale,
                  int horizontalAlignment,
                  int verticalAlignment)
           throws java.lang.IllegalArgumentException
Creates a ZoomLayout with the specified scale and alignments and with default spacing.

Parameters:
scale - amount to scale a container's components
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 scale <= 0.0 or if one of the alignment parameters is an unacceptable SwingConstant
See Also:
ZoomLayout(double,int,int,int,int,int,int,int,int)

ZoomLayout

public ZoomLayout(double scale,
                  int horizontalSpacing,
                  int verticalSpacing,
                  int minLeftMargin,
                  int minRightMargin,
                  int minTopMargin,
                  int minBottomMargin)
           throws java.lang.IllegalArgumentException
Creates a ZoomLayout with the specified scale and specified spacing and with default alignments.

Parameters:
scale - amount to scale a container's components
horizontalSpacing - Horizontal spacing between components
verticalSpacing - Vertical spacing between components
minLeftMargin - Minimum left margin
minRightMargin - Minimum right margin
minTopMargin - Minimum top margin
minBottomMargin - Minimum bottom margin
Throws:
java.lang.IllegalArgumentException - if scale <= 0.0 or if one of the spacing parameters is negative
See Also:
ZoomLayout(double,int,int,int,int,int,int,int,int)

ZoomLayout

public ZoomLayout(double scale,
                  int horizontalAlignment,
                  int verticalAlignment,
                  int horizontalSpacing,
                  int verticalSpacing,
                  int minLeftMargin,
                  int minRightMargin,
                  int minTopMargin,
                  int minBottomMargin)
           throws java.lang.IllegalArgumentException
Creates a ZoomLayout with the specified scale, alignments, and spacing.

Parameters:
scale - amount to scale a container's components
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.
horizontalSpacing - Horizontal spacing between components
verticalSpacing - Vertical spacing between components
minLeftMargin - Minimum left margin
minRightMargin - Minimum right margin
minTopMargin - Minimum top margin
minBottomMargin - Minimum bottom margin
Throws:
java.lang.IllegalArgumentException - if scale <= 0.0, if one of the alignment parameters is an unacceptable 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

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

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

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

getScale

public double getScale()
Returns this zoom layout's scale.

Returns:
the amount this layout manager scales a container's components

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.

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

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

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

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

Side of Software
Print Preview Library 1.8.1

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