Class ToolbarLayout

All Implemented Interfaces:
LayoutManager

public class ToolbarLayout extends OrderedLayout
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 Details

  • Constructor Details

  • Method Details

    • calculateMinimumSize

      protected 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:
    • 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:
    • getChildMinimumSize

      protected Dimension getChildMinimumSize(IFigure child, int wHint, int hHint)
      Parameters:
      child - the figure whose minimum size is to be determined
      wHint - the width hint
      hHint - the height hint
      Returns:
      the given figure's minimum size
      Since:
      3.3
    • getChildPreferredSize

      protected Dimension getChildPreferredSize(IFigure child, int wHint, int hHint)
      Parameters:
      child - the figure whose preferred size is to be determined
      wHint - the width hint
      hHint - the height hint
      Returns:
      given figure's preferred size
      Since:
      3.3
    • getDefaultOrientation

      protected int getDefaultOrientation()
      Returns PositionConstants.VERTICAL by default.
      Specified by:
      getDefaultOrientation in class OrderedLayout
      Returns:
      one of PositionConstants.HORIZONTAL or PositionConstants.VERTICAL
      See Also:
    • getSpacing

      public int getSpacing()
      Returns:
      the spacing between children
    • 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:
    • 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:
    • getStretchMinorAxis

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

      public boolean isStretchMinorAxis()
      Overwritten to guarantee backwards compatibility with matchWidth field.
      Specified by:
      isStretchMinorAxis in class OrderedLayout
      Returns:
      whether children are to be stretched in the minor axis.
      See Also:
    • layout

      public void layout(IFigure parent)
      Description copied from interface: LayoutManager
      Lays out the given figure.
      Parameters:
      parent - The figure
      See Also:
    • setMatchWidth

      @Deprecated public void setMatchWidth(boolean match)
      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
    • setSpacing

      public void setSpacing(int space)
      Sets the amount of space between children.
      Parameters:
      space - the amount of space between children
      Since:
      2.0
    • setStretchMinorAxis

      public void setStretchMinorAxis(boolean value)
      Overwritten to guarantee backwards compatibility with matchWidth field.
      Specified by:
      setStretchMinorAxis in class OrderedLayout
      Parameters:
      value - whether children should be stretched in the minor axis.
      See Also:
    • setVertical

      @Deprecated public void setVertical(boolean flag)
      Deprecated.
      Use OrderedLayout.setHorizontal(boolean) with argument false instead.
      Sets the orientation of the layout
      Parameters:
      flag - whether the orientation should be vertical
      Since:
      2.0