Class LinearLayout

  • All Implemented Interfaces:
    LayoutManager

    public class LinearLayout
    extends java.lang.Object
    implements LayoutManager
    Simple layout manager the puts all components on a single line, either horizontally or vertically.
    • Field Detail

      • direction

        private final Direction direction
      • spacing

        private int spacing
      • changed

        private boolean changed
    • Constructor Detail

      • 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 Detail

      • 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:
        LinearLayout.Alignment
      • 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:
        LinearLayout.Alignment
      • 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​(java.util.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​(java.util.List<Component> components)
      • getPreferredSizeHorizontally

        private TerminalSize getPreferredSizeHorizontally​(java.util.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,
                             java.util.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,
                                      java.util.List<Component> components)
        Deprecated.
      • doFlexibleVerticalLayout

        private void doFlexibleVerticalLayout​(TerminalSize area,
                                              java.util.List<Component> components)
      • doHorizontalLayout

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

        private void doFlexibleHorizontalLayout​(TerminalSize area,
                                                java.util.List<Component> components)