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.
  • Field Details

    • direction

      private final Direction direction
    • spacing

      private int spacing
    • changed

      private boolean changed
  • 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
    • getPreferredSizeVertically

      private TerminalSize getPreferredSizeVertically(List<Component> components)
    • getPreferredSizeHorizontally

      private TerminalSize getPreferredSizeHorizontally(List<Component> components)
    • 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
    • doVerticalLayout

      @Deprecated private void doVerticalLayout(TerminalSize area, List<Component> components)
      Deprecated.
    • doFlexibleVerticalLayout

      private void doFlexibleVerticalLayout(TerminalSize area, List<Component> components)
    • doHorizontalLayout

      @Deprecated private void doHorizontalLayout(TerminalSize area, List<Component> components)
      Deprecated.
    • doFlexibleHorizontalLayout

      private void doFlexibleHorizontalLayout(TerminalSize area, List<Component> components)