Class LinearLayout
java.lang.Object
com.googlecode.lanterna.gui2.LinearLayout
- All Implemented Interfaces:
LayoutManager
Simple layout manager the puts all components on a single line, either horizontally or vertically.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumThis enum type will decide the alignment of a component on the counter-axis, meaning the horizontal alignment on verticalLinearLayouts and vertical alignment on horizontalLinearLayouts.static enumThis enum type will what to do with a component if the container has extra space to offer.private static class -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor, creates a verticalLinearLayoutLinearLayout(Direction direction) Standard constructor that creates aLinearLayoutwith a specified direction to position the components on -
Method Summary
Modifier and TypeMethodDescriptionstatic LayoutDatacreateLayoutData(LinearLayout.Alignment alignment) Creates aLayoutDataforLinearLayoutthat assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on verticalLinearLayouts and vertical alignment on horizontalLinearLayouts.static LayoutDatacreateLayoutData(LinearLayout.Alignment alignment, LinearLayout.GrowPolicy growPolicy) Creates aLayoutDataforLinearLayoutthat assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on verticalLinearLayouts and vertical alignment on horizontalLinearLayouts.private voiddoFlexibleHorizontalLayout(TerminalSize area, List<Component> components) private voiddoFlexibleVerticalLayout(TerminalSize area, List<Component> components) private voiddoHorizontalLayout(TerminalSize area, List<Component> components) Deprecated.voiddoLayout(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.private voiddoVerticalLayout(TerminalSize area, List<Component> components) Deprecated.getPreferredSize(List<Component> components) 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.private TerminalSizegetPreferredSizeHorizontally(List<Component> components) private TerminalSizegetPreferredSizeVertically(List<Component> components) intReturns the amount of empty space to put in between components.booleanReturns 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.
-
Field Details
-
direction
-
spacing
private int spacing -
changed
private boolean changed
-
-
Constructor Details
-
LinearLayout
public LinearLayout()Default constructor, creates a verticalLinearLayout -
LinearLayout
Standard constructor that creates aLinearLayoutwith a specified direction to position the components on- Parameters:
direction- Direction for thisDirection
-
-
Method Details
-
createLayoutData
Creates aLayoutDataforLinearLayoutthat assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on verticalLinearLayouts and vertical alignment on horizontalLinearLayouts.- Parameters:
alignment- Alignment to store in theLayoutDataobject- Returns:
LayoutDataobject created forLinearLayouts with the specified alignment- See Also:
-
createLayoutData
public static LayoutData createLayoutData(LinearLayout.Alignment alignment, LinearLayout.GrowPolicy growPolicy) Creates aLayoutDataforLinearLayoutthat assigns a component to a particular alignment on its counter-axis, meaning the horizontal alignment on verticalLinearLayouts and vertical alignment on horizontalLinearLayouts.- Parameters:
alignment- Alignment to store in theLayoutDataobjectgrowPolicy- When policy to apply to the component if the parent container has more space available along the main axis.- Returns:
LayoutDataobject created forLinearLayouts with the specified alignment- See Also:
-
setSpacing
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
Description copied from interface:LayoutManagerThis 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:
getPreferredSizein interfaceLayoutManager- Parameters:
components- List of components- Returns:
- Size the layout manager would like to have
-
getPreferredSizeVertically
-
getPreferredSizeHorizontally
-
hasChanged
public boolean hasChanged()Description copied from interface:LayoutManagerReturns 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:
hasChangedin interfaceLayoutManager- Returns:
trueif this layout manager's internal state has changed since the last call todoLayout
-
doLayout
Description copied from interface:LayoutManagerGiven 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 callsetPosition(..)andsetSize(..)on the Components.- Specified by:
doLayoutin interfaceLayoutManager- Parameters:
area- Size available to this layout manager to lay out the components oncomponents- List of components to lay out
-
doVerticalLayout
Deprecated. -
doFlexibleVerticalLayout
-
doHorizontalLayout
Deprecated. -
doFlexibleHorizontalLayout
-