Eclipse Draw2d
2.1

org.eclipse.draw2d
Class ToolbarLayout

java.lang.Object
  |
  +--org.eclipse.draw2d.AbstractLayout
        |
        +--org.eclipse.draw2d.AbstractHintLayout
              |
              +--org.eclipse.draw2d.ToolbarLayout
All Implemented Interfaces:
LayoutManager

public class ToolbarLayout
extends AbstractHintLayout

Arranges figures in a single row or column. Orientation can be set to produce either a row or column layout. This layout tries to fit all children within the parent's client area. To do this, it compresses the children by some amount, but will not compress them smaller than their minimum size. If a child's preferred size is smaller than the row's or column's minor dimension, the layout can be configured to stretch the child.


Field Summary
static int ALIGN_BOTTOMRIGHT
          Constant for bottom-right alignment
static int ALIGN_CENTER
          Constant for center alignment
static int ALIGN_TOPLEFT
          Constant for top-left alignment
protected  boolean horizontal
          Orientation of layout
static boolean HORIZONTAL
          Constant for horizontal alignment
protected  boolean matchWidth
          Sets whether children should "stretch" with their container
protected  int minorAlignment
          Alignment of layout
protected  int spacing
          Space in pixels between Figures
protected  Transposer transposer
          Transposer object used in layout calculations
static boolean VERTICAL
          Constant for vertical alignment
 
Fields inherited from class org.eclipse.draw2d.AbstractLayout
preferredSize
 
Constructor Summary
ToolbarLayout()
          Constructs a vertically oriented ToolbarLayout with child spacing of 0 pixels, matchWidth true, and ALIGN_TOPLEFT alignment.
ToolbarLayout(boolean isHorizontal)
          Constructs a ToolbarLayout with a specified orientation.
 
Method Summary
 Dimension calculateMinimumSize(IFigure container, int wHint, int hHint)
          Calculates the minimum size of the container based on the given hints.
protected  Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
          Calculates the preferred size of the container based on the given hints.
 int getMinorAlignment()
          Returns the minor aligment of the layout.
 int getSpacing()
           
 boolean getStretchMinorAxis()
          Returns true if stretch minor axis has been enabled.
 boolean isHorizontal()
           
protected  boolean isSensitiveHorizontally(IFigure parent)
          Returns whether this layout manager is sensitive to changes in the horizontal hint.
protected  boolean isSensitiveVertically(IFigure parent)
          Returns whether this layout manager is sensitive to changes in the vertical hint.
 void layout(IFigure parent)
          Lays out the given figure.
 void setMatchWidth(boolean match)
          Deprecated. use setStretchMinorAxis(boolean)
 void setMinorAlignment(int align)
          Sets the alignment of the children contained in the layout.
 void setSpacing(int space)
          Sets the amount of space between children.
 void setStretchMinorAxis(boolean stretch)
          Causes children that are smaller in the dimension of the minor axis to be stretched to fill the minor axis.
 void setVertical(boolean flag)
          Sets the orientation of the children in the ToolbarLayout.
 
Methods inherited from class org.eclipse.draw2d.AbstractHintLayout
getMinimumSize, getPreferredSize, invalidate
 
Methods inherited from class org.eclipse.draw2d.AbstractLayout
calculatePreferredSize, getBorderPreferredSize, getConstraint, getMinimumSize, getPreferredSize, invalidate, remove, setConstraint
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

spacing

protected int spacing
Space in pixels between Figures


matchWidth

protected boolean matchWidth
Sets whether children should "stretch" with their container


horizontal

protected boolean horizontal
Orientation of layout


minorAlignment

protected int minorAlignment
Alignment of layout


ALIGN_CENTER

public static final int ALIGN_CENTER
Constant for center alignment

See Also:
Constant Field Values

ALIGN_TOPLEFT

public static final int ALIGN_TOPLEFT
Constant for top-left alignment

See Also:
Constant Field Values

ALIGN_BOTTOMRIGHT

public static final int ALIGN_BOTTOMRIGHT
Constant for bottom-right alignment

See Also:
Constant Field Values

HORIZONTAL

public static final boolean HORIZONTAL
Constant for horizontal alignment

See Also:
Constant Field Values

VERTICAL

public static final boolean VERTICAL
Constant for vertical alignment

See Also:
Constant Field Values

transposer

protected Transposer transposer
Transposer object used in layout calculations

Constructor Detail

ToolbarLayout

public ToolbarLayout()
Constructs a vertically oriented ToolbarLayout with child spacing of 0 pixels, matchWidth true, and ALIGN_TOPLEFT alignment.

Since:
2.0

ToolbarLayout

public ToolbarLayout(boolean isHorizontal)
Constructs a ToolbarLayout with a specified orientation. Default values are: child spacing 0 pixels, matchWidth false, and ALIGN_TOPLEFT alignment.

Parameters:
isHorizontal - whether the children are oriented horizontally
Since:
2.0
Method Detail

calculateMinimumSize

public Dimension calculateMinimumSize(IFigure container,
                                      int wHint,
                                      int hHint)
Calculates the minimum size of the container based on the given hints. If this is a vertically-oriented Toolbar Layout, then only the widthHint is respected (which means that the children can be as tall as they desire). In this case, the minimum width is that of the widest child, and the minimum height is the sum of the minimum heights of all children, plus the spacing between them. The border and insets of the container figure are also accounted for.

Overrides:
calculateMinimumSize in class AbstractHintLayout
Parameters:
container - the figure whose minimum size has to be calculated
wHint - the width hint (the desired width of the container)
hHint - the height hint (the desired height of the container)
Returns:
the minimum size of the container
Since:
2.1
See Also:
AbstractHintLayout.getMinimumSize(IFigure, int, int)

calculatePreferredSize

protected Dimension calculatePreferredSize(IFigure container,
                                           int wHint,
                                           int hHint)
Calculates the preferred size of the container based on the given hints. If this is a vertically-oriented Toolbar Layout, then only the widthHint is respected (which means that the children can be as tall as they desire). In this case, the preferred width is that of the widest child, and the preferred height is the sum of the preferred heights of all children, plus the spacing between them. The border and insets of the container figure are also accounted for.

Specified by:
calculatePreferredSize in class AbstractLayout
Parameters:
container - the figure whose preferred size has to be calculated
wHint - the width hint (the desired width of the container)
hHint - the height hint (the desired height of the container)
Returns:
the preferred size of the container
Since:
2.0
See Also:
AbstractHintLayout.getPreferredSize(IFigure, int, int)

getMinorAlignment

public int getMinorAlignment()
Returns the minor aligment of the layout. Minor minor axis is the axis perpindicular to the overall orientation set in the contructor.

Returns:
the minor aligment

getSpacing

public int getSpacing()
Returns:
the spacing between children

getStretchMinorAxis

public boolean getStretchMinorAxis()
Returns true if stretch minor axis has been enabled. The default value is false.

Returns:
true if stretch minor axis is enabled

isHorizontal

public boolean isHorizontal()
Returns:
whether the orientation of the layout is horizontal
Since:
2.0

isSensitiveHorizontally

protected boolean isSensitiveHorizontally(IFigure parent)
Description copied from class: AbstractHintLayout
Returns whether this layout manager is sensitive to changes in the horizontal hint. By default, this method returns true.

Overrides:
isSensitiveHorizontally in class AbstractHintLayout
Parameters:
parent - the layout's container
Returns:
true if this layout is sensite to horizontal hint changes
See Also:
AbstractHintLayout.isSensitiveHorizontally(IFigure)

isSensitiveVertically

protected boolean isSensitiveVertically(IFigure parent)
Description copied from class: AbstractHintLayout
Returns whether this layout manager is sensitive to changes in the vertical hint. By default, this method returns true.

Overrides:
isSensitiveVertically in class AbstractHintLayout
Parameters:
parent - the layout's container
Returns:
true if this layout is sensite to vertical hint changes
See Also:
AbstractHintLayout.isSensitiveVertically(IFigure)

layout

public void layout(IFigure parent)
Description copied from interface: LayoutManager
Lays out the given figure.

Parameters:
parent - The figure
See Also:
LayoutManager.layout(IFigure)

setMinorAlignment

public void setMinorAlignment(int align)
Sets the alignment of the children contained in the layout. Possible values are ALIGN_CENTER, ALIGN_BOTTOMRIGHT and ALIGN_TOPLEFT.

Parameters:
align - the minor alignment
Since:
2.0

setSpacing

public void setSpacing(int space)
Sets the amount of space between children.

Parameters:
space - the amount of space between children
Since:
2.0

setMatchWidth

public void setMatchWidth(boolean match)
Deprecated. use setStretchMinorAxis(boolean)

Sets children's width (if vertically oriented) or height (if horizontally oriented) to stretch with their container.

Parameters:
match - whether to stretch children
Since:
2.0

setStretchMinorAxis

public void setStretchMinorAxis(boolean stretch)
Causes children that are smaller in the dimension of the minor axis to be stretched to fill the minor axis. The minor axis is the opposite of the orientation.

Parameters:
stretch - whether to stretch children
Since:
2.0

setVertical

public void setVertical(boolean flag)
Sets the orientation of the children in the ToolbarLayout.

Parameters:
flag - whether the orientation should be vertical
Since:
2.0

Eclipse Draw2d
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.