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

    • HORIZONTAL

      @Deprecated(forRemoval=true, since="2025-09") public static final boolean HORIZONTAL
      Deprecated, for removal: This API element is subject to removal in a future version.
      Unused. This field will be removed after the 2027-09 release.
      Constant for horizontal alignment
      See Also:
    • VERTICAL

      @Deprecated(forRemoval=true, since="2025-09") public static final boolean VERTICAL
      Deprecated, for removal: This API element is subject to removal in a future version.
      Unused. This field will be removed after the 2027-09 release.
      Constant for vertical alignment
      See Also:
    • matchWidth

      @Deprecated(forRemoval=true, since="2025-09") protected boolean matchWidth
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use OrderedLayout.setStretchMinorAxis(boolean) and OrderedLayout.isStretchMinorAxis() instead. This field will be made private after the 2027-09 release.
      Sets whether children should "stretch" with their container
    • spacing

      @Deprecated(forRemoval=true, since="2025-09") protected int spacing
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use getSpacing() and setSpacing(int) instead. This field will be made private after the 2027-09 release.
      Space in pixels between Figures
  • 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(forRemoval=true, since="2025-09") public boolean getStretchMinorAxis()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use isStretchMinorAxis() instead. This method will be removed after the 2027-09 release.
      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(forRemoval=true, since="2025-09") public void setMatchWidth(boolean match)
      Deprecated, for removal: This API element is subject to removal in a future version.
      use setStretchMinorAxis(boolean). This method will be removed after the 2027-09 release.
      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(forRemoval=true, since="2025-09") public void setVertical(boolean flag)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Use OrderedLayout.setHorizontal(boolean) with argument false instead. This method will be removed after the 2027-09 release.
      Sets the orientation of the layout
      Parameters:
      flag - whether the orientation should be vertical
      Since:
      2.0