Class CellBox

java.lang.Object
pi.graphics.boxes.Box
pi.graphics.boxes.CellBox
All Implemented Interfaces:
Iterable<Box>

public class CellBox extends Box
Eine äußere (größere) Behälter-Box, die eine kleinere (innere) Box enthält.

Die Methoden legen (height(int) und width(int)) die Abmessung der äußeren Box fest. Ist die innere Box jedoch größer als die äußere, so nimmt die äußere Box die Größe der inneren Box an. Die innere Box kann horizontal und vertikal ausgerichtet werden.

  • Field Details

    • child

      protected Box child
      Die Kind-Box, dieser übergeordneten Box.
  • Constructor Details

    • CellBox

      public CellBox()
    • CellBox

      public CellBox(Box child)
  • Method Details

    • childWidth

      @Getter public int childWidth()
    • childHeight

      @Getter public int childHeight()
    • width

      @Setter public CellBox width(int width)
      Overrides:
      width in class Box
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z. B. box.x(..).y(..).
    • height

      @Setter public CellBox height(int height)
      Overrides:
      height in class Box
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z. B. box.x(..).y(..).
    • hAlign

      @Setter public CellBox hAlign(HAlign hAlign)
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z. B. box.x(..).y(..).
    • vAlign

      @Setter public CellBox vAlign(VAlign vAlign)
      Returns:
      Eine Referenz auf die eigene Instanz der Box, damit nach dem Erbauer/Builder-Entwurfsmuster die Eigenschaften der Box durch aneinander gekettete Setter festgelegt werden können, z. B. box.x(..).y(..).
    • calculateDimension

      protected void calculateDimension()
      Description copied from class: Box
      Berechnet rekursiv die Abmessung (die Höhe und Breite) der eigenen Box.

      Single-Child-Code-Beispiel

       
       protected void calculateDimension()
       {
           width = child.width + 2 * margin;
           height = child.height + 2 * margin;
       }
       
       

      Multiple-Child-Code-Beispiel

       
       protected void calculateDimension()
       {
           int maxWidth = 0;
           for (Box child : childs)
           {
               if (child.width > maxWidth)
               {
                   maxWidth = child.width;
               }
               height += child.height;
           }
           width = maxWidth;
       }
       
       
      Specified by:
      calculateDimension in class Box
    • calculateAnchors

      protected void calculateAnchors()
      Description copied from class: Box
      Berechnet rekursiv alle Ankerpunkte (linkes oberes Eck) der untergeordneten Kinder-Boxen. Die inneren Blattboxen brauchen diese Methode nicht zu implementieren.

      Single-Child-Code-Beispiel

       
       protected void calculateAnchors()
       {
           child.x = x + margin;
           child.y = y + margin;
       }
       
       

      Multiple-Child-Code-Beispiel

       
       protected void calculateAnchors()
       {
           int yCursor = y;
           for (Box child : childs)
           {
               child.x = x;
               child.y = yCursor;
               yCursor += child.height;
           }
       }
       
       
      Specified by:
      calculateAnchors in class Box
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • addChild

      public void addChild(Box child)
      Fügt eine Kind-Box hinzu.

      Die Zellbox wird dabei als Elternbox der Kind-Box gesetzt.

      Parameters:
      child - Die Kind-Box.
    • numberOfChilds

      public int numberOfChilds()
      Description copied from class: Box
      Gibt die Anzahl an Kinder-Boxen zurück.
      Specified by:
      numberOfChilds in class Box
      Returns:
      Die Anzahl an Kinder-Boxen.