FreeHEP API
Version current

org.freehep.swing.layout
Class ToolBarLayout

java.lang.Object
  extended byorg.freehep.swing.layout.ToolBarLayout
All Implemented Interfaces:
LayoutManager

public class ToolBarLayout
extends Object
implements LayoutManager

A ToolbarLayout arranges components in a left-to-right flow, much like the FlowLayout which is supplied with the JDK. However, it fixes the problem with the FlowLayout that occurs when a FlowLayout is for a North aligned component of a BorderLayout--namely, that if the window is shrunk so that some of the components within the FlowLayout wrap to the next line the component does not grow in height to support this wrapping. This bug was caused by the library designers using the preferred size in recalculating, not the size which is determined by the window width. As such, the flow layout would always want to be the height of one row. A ToolbarLayout lets each component assume its natural (preferred) size. NOTE: This class was initially a subclass of FlowLayout, but we encountered problems using that approach.

Version:
$Id: ToolBarLayout.java,v 1.3 2003/01/10 16:36:32 tonyj Exp $
Author:
Peter Armstrong, Tony Johnson
Source Code:
ToolBarLayout.java

Field Summary
static int CENTER
          This value indicates that each row of components should be centered.
static int LEFT
          This value indicates that each row of components should be left-justified.
static int RIGHT
          This value indicates that each row of components should be right-justified.
 
Constructor Summary
ToolBarLayout()
          Constructs a new ToolbarLayout with a left alignment and a default 5-unit horizontal and vertical gap.
ToolBarLayout(int align)
          Constructs a new ToolbarLayout with the specified alignment and a default 5-unit horizontal and vertical gap.
ToolBarLayout(int align, int hgap, int vgap)
          Creates a new ToolbarLayout with the indicated alignment and the indicated horizontal and vertical gaps.
 
Method Summary
 void addLayoutComponent(String name, Component comp)
          Adds the specified component to the layout.
 int getAlignment()
          Gets the alignment for this layout.
 int getHgap()
          Gets the horizontal gap between components.
 int getVgap()
          Gets the vertical gap between components.
 void layoutContainer(Container target)
          Lays out the container.
 Dimension minimumLayoutSize(Container target)
          Returns the minimum dimensions needed to layout the components contained in the specified target container.
 Dimension preferredLayoutSize(Container target)
          Returns the preferred dimensions for this layout given the components in the specified target container.
 void removeLayoutComponent(Component comp)
          Removes the specified component from the layout.
 void setAlignment(int align)
          Sets the alignment for this layout.
 void setHgap(int hgap)
          Sets the horizontal gap between components.
 void setVgap(int vgap)
          Sets the vertical gap between components.
 String toString()
          Returns a string representation of this ToolbarLayout object and its values.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LEFT

public static final int LEFT
This value indicates that each row of components should be left-justified.

See Also:
Constant Field Values

CENTER

public static final int CENTER
This value indicates that each row of components should be centered.

See Also:
Constant Field Values

RIGHT

public static final int RIGHT
This value indicates that each row of components should be right-justified.

See Also:
Constant Field Values
Constructor Detail

ToolBarLayout

public ToolBarLayout()
Constructs a new ToolbarLayout with a left alignment and a default 5-unit horizontal and vertical gap.


ToolBarLayout

public ToolBarLayout(int align)
Constructs a new ToolbarLayout with the specified alignment and a default 5-unit horizontal and vertical gap. The value of the alignment argument must be one of ToolbarLayout.LEFT, ToolbarLayout.RIGHT, or ToolbarLayout.CENTER.

Parameters:
align - the alignment value

ToolBarLayout

public ToolBarLayout(int align,
                     int hgap,
                     int vgap)
Creates a new ToolbarLayout with the indicated alignment and the indicated horizontal and vertical gaps.

The value of the alignment argument must be one of ToolbarLayout.LEFT, ToolbarLayout.RIGHT, or ToolbarLayout.CENTER.

Parameters:
align - the alignment value.
hgap - the horizontal gap between components.
vgap - the vertical gap between components.
Method Detail

getAlignment

public int getAlignment()
Gets the alignment for this layout. Possible values are ToolbarLayout.LEFT, ToolbarLayout.RIGHT, or ToolbarLayout.CENTER.

Returns:
the alignment value for this layout.
See Also:
setAlignment(int)

setAlignment

public void setAlignment(int align)
Sets the alignment for this layout. Possible values are ToolbarLayout.LEFT, ToolbarLayout.RIGHT, and ToolbarLayout.CENTER.

Parameters:
align - the alignment value.
See Also:
getAlignment()

getHgap

public int getHgap()
Gets the horizontal gap between components.

Returns:
the horizontal gap between components.
See Also:
setHgap(int)

setHgap

public void setHgap(int hgap)
Sets the horizontal gap between components.

Parameters:
hgap - the horizontal gap between components
See Also:
getHgap()

getVgap

public int getVgap()
Gets the vertical gap between components.

Returns:
the vertical gap between components.
See Also:
setVgap(int)

setVgap

public void setVgap(int vgap)
Sets the vertical gap between components.

Parameters:
vgap - the vertical gap between components
See Also:
getVgap()

addLayoutComponent

public void addLayoutComponent(String name,
                               Component comp)
Adds the specified component to the layout. Sets the orientation to be horizontal.

Specified by:
addLayoutComponent in interface LayoutManager
Parameters:
name - the name of the component
comp - the component to be added

removeLayoutComponent

public void removeLayoutComponent(Component comp)
Removes the specified component from the layout. Not used by this class.

Specified by:
removeLayoutComponent in interface LayoutManager
Parameters:
comp - the component to remove
See Also:
Container.removeAll()

preferredLayoutSize

public Dimension preferredLayoutSize(Container target)
Returns the preferred dimensions for this layout given the components in the specified target container. This method is the difference between ToolbarLayout and FlowLayout.

Specified by:
preferredLayoutSize in interface LayoutManager
Parameters:
target - the component which needs to be laid out
Returns:
the preferred dimensions to lay out the subcomponents of the specified container.
See Also:
Container, minimumLayoutSize(java.awt.Container), Container.getPreferredSize()

minimumLayoutSize

public Dimension minimumLayoutSize(Container target)
Returns the minimum dimensions needed to layout the components contained in the specified target container.

Specified by:
minimumLayoutSize in interface LayoutManager
Parameters:
target - the component which needs to be laid out
Returns:
the minimum dimensions to lay out the subcomponents of the specified container.
See Also:
preferredLayoutSize(java.awt.Container), Container, Container.doLayout()

layoutContainer

public void layoutContainer(Container target)
Lays out the container. This method lets each component take its preferred size by reshaping the components in the target container in order to satisfy the constraints of this ToolbarLayout object.

Specified by:
layoutContainer in interface LayoutManager
Parameters:
target - the specified component being laid out.
See Also:
Container, Container.doLayout()

toString

public String toString()
Returns a string representation of this ToolbarLayout object and its values.

Returns:
a string representation of this layout.

FreeHEP API
Version current

Copyright © 2000-2004 FreeHEP, All Rights Reserved.