Class LinearLayout

java.lang.Object
com.googlecode.lanterna.gui2.LinearLayout
All Implemented Interfaces:
LayoutManager

public class LinearLayout extends Object implements LayoutManager
Simple layout manager the puts all components on a single line, either horizontally or vertically.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static enum 
    This enum type will decide the alignment of a component on the counter-axis, meaning the horizontal alignment on vertical LinearLayouts and vertical alignment on horizontal LinearLayouts.
    static enum 
    This enum type will what to do with a component if the container has extra space to offer.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor, creates a vertical LinearLayout
    Standard constructor that creates a LinearLayout with a specified direction to position the components on
  • Method Summary

    Modifier and Type
    Method
    Description
    static LayoutData
    Creates a LayoutData for LinearLayout that assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on vertical LinearLayouts and vertical alignment on horizontal LinearLayouts.
    static LayoutData
    Creates a LayoutData for LinearLayout that assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on vertical LinearLayouts and vertical alignment on horizontal LinearLayouts.
    void
    doLayout(TerminalSize area, List<Component> components)
    Given a size constraint, update the location and size of each component in the component list by laying them out in the available area.
    This method returns the dimensions it would prefer to have to be able to layout all components while giving all of them as much space as they are asking for.
    int
    Returns the amount of empty space to put in between components.
    boolean
    Returns true if the internal state of this LayoutManager has changed since the last call to doLayout.
    setSpacing(int spacing)
    Sets the amount of empty space to put in between components.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • LinearLayout

      public LinearLayout()
      Default constructor, creates a vertical LinearLayout
    • LinearLayout

      public LinearLayout(Direction direction)
      Standard constructor that creates a LinearLayout with a specified direction to position the components on
      Parameters:
      direction - Direction for this Direction
  • Method Details

    • createLayoutData

      public static LayoutData createLayoutData(LinearLayout.Alignment alignment)
      Creates a LayoutData for LinearLayout that assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on vertical LinearLayouts and vertical alignment on horizontal LinearLayouts.
      Parameters:
      alignment - Alignment to store in the LayoutData object
      Returns:
      LayoutData object created for LinearLayouts with the specified alignment
      See Also:
    • createLayoutData

      public static LayoutData createLayoutData(LinearLayout.Alignment alignment, LinearLayout.GrowPolicy growPolicy)
      Creates a LayoutData for LinearLayout that assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on vertical LinearLayouts and vertical alignment on horizontal LinearLayouts.
      Parameters:
      alignment - Alignment to store in the LayoutData object
      growPolicy - When policy to apply to the component if the parent container has more space available along the main axis.
      Returns:
      LayoutData object created for LinearLayouts with the specified alignment
      See Also:
    • setSpacing

      public LinearLayout setSpacing(int spacing)
      Sets the amount of empty space to put in between components. For horizontal layouts, this is number of columns (by default 1) and for vertical layouts this is number of rows (by default 0).
      Parameters:
      spacing - Spacing between components, either in number of columns or rows depending on the direction
      Returns:
      Itself
    • getSpacing

      public int getSpacing()
      Returns the amount of empty space to put in between components. For horizontal layouts, this is number of columns (by default 1) and for vertical layouts this is number of rows (by default 0).
      Returns:
      Spacing between components, either in number of columns or rows depending on the direction
    • getPreferredSize

      public TerminalSize getPreferredSize(List<Component> components)
      Description copied from interface: LayoutManager
      This method returns the dimensions it would prefer to have to be able to layout all components while giving all of them as much space as they are asking for.
      Specified by:
      getPreferredSize in interface LayoutManager
      Parameters:
      components - List of components
      Returns:
      Size the layout manager would like to have
    • hasChanged

      public boolean hasChanged()
      Description copied from interface: LayoutManager
      Returns true if the internal state of this LayoutManager has changed since the last call to doLayout. This will tell the container that it needs to call doLayout again.
      Specified by:
      hasChanged in interface LayoutManager
      Returns:
      true if this layout manager's internal state has changed since the last call to doLayout
    • doLayout

      public void doLayout(TerminalSize area, List<Component> components)
      Description copied from interface: LayoutManager
      Given a size constraint, update the location and size of each component in the component list by laying them out in the available area. This method will call setPosition(..) and setSize(..) on the Components.
      Specified by:
      doLayout in interface LayoutManager
      Parameters:
      area - Size available to this layout manager to lay out the components on
      components - List of components to lay out