Class AutoLayout


public class AutoLayout extends StyledElement<AutoLayout>
A content-aware smart layout that automatically adjusts based on the selected mode.

AutoLayout provides different layout behaviors through configurable modes:

Use Cases:

  • Card grids that adapt to content width
  • Button groups with equal-width buttons
  • Form layouts that stack on narrow screens
  • Tag/chip lists that wrap naturally

Usage:


 // Equal-width items (like a button bar)
 AutoLayout buttonBar = new AutoLayout(AutoLayout.Mode.EQUAL);
 buttonBar.setGap(8);
 buttonBar.addElement(btn1);
 buttonBar.addElement(btn2);
 buttonBar.addElement(btn3);

 // Flowing card grid
 AutoLayout cardGrid = new AutoLayout(AutoLayout.Mode.FLOW);
 cardGrid.setGap(16);
 cardGrid.setMinChildWidth("250px");
 cards.forEach(cardGrid::addElement);

 // Stacked form fields
 AutoLayout form = new AutoLayout(AutoLayout.Mode.STACK);
 form.setGap(12);
 form.addElement(nameField);
 form.addElement(emailField);
 
Since:
2025
Version:
1.0
Author:
Marvin P. Warble Jr.
See Also:
  • Constructor Details

    • AutoLayout

      public AutoLayout()
      Constructs an AutoLayout with the default FLOW mode.
    • AutoLayout

      public AutoLayout(AutoLayout.Mode mode)
      Constructs an AutoLayout with the specified mode.
      Parameters:
      mode - the layout mode
    • AutoLayout

      public AutoLayout(AutoLayout.Mode mode, int gap)
      Constructs an AutoLayout with the specified mode and gap.
      Parameters:
      mode - the layout mode
      gap - the gap in pixels between items
  • Method Details

    • setMode

      public final AutoLayout setMode(AutoLayout.Mode mode)
      Sets the layout mode.
      Parameters:
      mode - the layout mode
      Returns:
      this AutoLayout for method chaining
    • getMode

      public AutoLayout.Mode getMode()
      Gets the current layout mode.
      Returns:
      the current mode
    • setGap

      public final AutoLayout setGap(int gap)
      Sets a uniform gap between items.
      Overrides:
      setGap in class StyledElement<AutoLayout>
      Parameters:
      gap - the gap in pixels
      Returns:
      this AutoLayout for method chaining
    • setGap

      public final AutoLayout setGap(String gap)
      Sets a uniform gap between items using a CSS value.
      Overrides:
      setGap in class StyledElement<AutoLayout>
      Parameters:
      gap - the gap value (e.g., "1rem", "16px")
      Returns:
      this AutoLayout for method chaining
    • setGap

      public final AutoLayout setGap(int rowGap, int columnGap)
      Sets separate row and column gaps.
      Overrides:
      setGap in class StyledElement<AutoLayout>
      Parameters:
      rowGap - the vertical gap between rows in pixels
      columnGap - the horizontal gap between items in pixels
      Returns:
      this AutoLayout for method chaining
    • setMinChildWidth

      public final AutoLayout setMinChildWidth(String minWidth)
      Sets the minimum width for child elements in FLOW mode.

      This helps create responsive grids where items wrap when they can't maintain this minimum width.

      Parameters:
      minWidth - the minimum width (e.g., "200px", "15rem")
      Returns:
      this AutoLayout for method chaining
    • setMinChildWidth

      public final AutoLayout setMinChildWidth(int minWidth)
      Sets the minimum width for child elements in FLOW mode.
      Parameters:
      minWidth - the minimum width in pixels
      Returns:
      this AutoLayout for method chaining
    • setAlign

      public final AutoLayout setAlign(AlignItems align)
      Sets the cross-axis alignment for items.
      Parameters:
      align - the alignment value
      Returns:
      this AutoLayout for method chaining
    • setJustify

      public final AutoLayout setJustify(JustifyContent justify)
      Sets the main-axis alignment/distribution for items.
      Parameters:
      justify - the justification value
      Returns:
      this AutoLayout for method chaining
    • center

      public final AutoLayout center()
      Centers items on both axes.
      Returns:
      this AutoLayout for method chaining
    • spaceBetween

      public final AutoLayout spaceBetween()
      Distributes items with space between them.
      Returns:
      this AutoLayout for method chaining
    • spaceEvenly

      public final AutoLayout spaceEvenly()
      Distributes items with equal space around them.
      Returns:
      this AutoLayout for method chaining
    • stretch

      public final AutoLayout stretch()
      Makes all child elements stretch to fill the container height (in row modes) or width (in column mode).
      Returns:
      this AutoLayout for method chaining
    • reverse

      public final AutoLayout reverse()
      Reverses the order of items.
      Returns:
      this AutoLayout for method chaining