Class FlowLayout

All Implemented Interfaces:
LayoutManager

public class FlowLayout extends OrderedLayout
Lays out children in rows or columns, wrapping when the current row/column is filled. The aligment and spacing of rows in the parent can be configured. The aligment and spacing of children within a row can be configured.
  • Field Details

  • Constructor Details

    • FlowLayout

      public FlowLayout()
      Constructs a FlowLayout with horizontal orientation.
      Since:
      2.0
    • FlowLayout

      public FlowLayout(boolean isHorizontal)
      Constructs a FlowLayout whose orientation is given in the input.
      Parameters:
      isHorizontal - true if the layout should be horizontal
      Since:
      2.0
  • Method Details

    • calculatePreferredSize

      protected Dimension calculatePreferredSize(IFigure container, int wHint, int hHint)
      Description copied from class: AbstractLayout
      Calculates the preferred size of the given figure, using width and height hints.
      Specified by:
      calculatePreferredSize in class AbstractLayout
      Parameters:
      container - The figure
      wHint - The width hint
      hHint - The height hint
      Returns:
      The preferred size
      See Also:
    • getChildSize

      protected Dimension getChildSize(IFigure child, int wHint, int hHint)
      Provides the given child's preferred size.
      Parameters:
      child - the Figure whose preferred size needs to be calculated
      wHint - the width hint
      hHint - the height hint
      Returns:
      the child's preferred size
    • getDefaultOrientation

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

      public int getMajorAlignment()
      Returns the alignment used for an entire row/column.

      Possible values are :

      Returns:
      the major alignment
      Since:
      2.0
    • getMajorSpacing

      public int getMajorSpacing()
      Returns the spacing in pixels to be used between children in the direction parallel to the layout's orientation.
      Returns:
      the major spacing
    • getMinorSpacing

      public int getMinorSpacing()
      Returns the spacing to be used between children within a row/column.
      Returns:
      the minor spacing
    • initRow

      protected void initRow()
      Initializes the state of row data, which is internal to the layout process.
    • initVariables

      protected void initVariables(IFigure parent)
      Initializes state data for laying out children, based on the Figure given as input.
      Parameters:
      parent - the parent figure
      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:
    • 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:
    • isStretchMinorAxis

      public boolean isStretchMinorAxis()
      Overwritten to guarantee backwards compatibility with fill 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:
    • layoutRow

      protected void layoutRow(IFigure parent)
      Layouts one row of components. This is done based on the layout's orientation, minor alignment and major alignment.
      Parameters:
      parent - the parent figure
      Since:
      2.0
    • setBoundsOfChild

      protected void setBoundsOfChild(IFigure parent, IFigure child, Rectangle bounds)
      Sets the given bounds for the child figure input.
      Parameters:
      parent - the parent figure
      child - the child figure
      bounds - the size of the child to be set
      Since:
      2.0
    • setMajorAlignment

      public void setMajorAlignment(int align)
      Sets the alignment for an entire row/column within the parent figure.

      Possible values are :

      Parameters:
      align - the major alignment
      Since:
      2.0
    • setMajorSpacing

      public void setMajorSpacing(int n)
      Sets the spacing in pixels to be used between children in the direction parallel to the layout's orientation.
      Parameters:
      n - the major spacing
      Since:
      2.0
    • setMinorSpacing

      public void setMinorSpacing(int n)
      Sets the spacing to be used between children within a row/column.
      Parameters:
      n - the minor spacing
      Since:
      2.0
    • setStretchMinorAxis

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