Package pi.graphics.boxes_ng
Class GridBox<T extends Box>
java.lang.Object
pi.graphics.boxes_ng.Box
pi.graphics.boxes_ng.ChildsBox<T>
pi.graphics.boxes_ng.PaddingBox<T>
pi.graphics.boxes_ng.GridBox<T>
- Direct Known Subclasses:
TextTableBox
Eine Gitter-Box, die mehrere untergeordnete Kinder-Boxen in Zeilen und
Spalten anordnet.
Jede Zelle des Gitters wird in eine CellBox eingebettet, damit die
Positionierung und Ausrichtung der einzelnen Kinder separat angepasst werden
kann.
- Author:
- Josef Friedrich
-
Field Summary
Fields inherited from class pi.graphics.boxes_ng.Box
childs, definedHeight, definedWidth, disabled, height, measureDimensionTwice, parent, pixelPerMeter, supportsDefinedDimension, width, x, y -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidBaut das interne Gitter anhand der aktuellen Kinder-Boxen und der konfigurierten Spaltenanzahl auf.protected voidBerechnet rekursiv alle Ankerpunkte (linkes unteres Eck) der untergeordneten Kinder-Boxen.protected voidBerechnet rekursiv die Abmessung (die Höhe und Breite) der eigenen Box.intGibt die Spaltenanzahl des Gitters zurück.columns(int columns) Setzt die Anzahl der Spalten im Gitter.forBox(int row, int column, Consumer<PopulatedCell<T>> consumer) Wendet einen Consumer auf eine bestimmte Zelle im Gitter an.forEachColumnBox(int column, Consumer<PopulatedCell<T>> consumer) Wendet für jede Zelle einer Spalte einen Consumer an.forEachRowBox(int row, Consumer<PopulatedCell<T>> consumer) Wendet für jede Zelle einer Zeile einen Consumer an.getColumn(int column) Liefert dieCellBox-Spalte mit dem angegebenen Index zurück.doublegetMaxHeightOfRow(int row) Bestimmt die maximale Höhe der angegebenen Zeile.doublegetMaxWidthOfColumn(int column) Bestimmt die maximale Breite der angegebenen Spalte in Pixel.getRow(int row) Liefert dieCellBox-Zeile mit dem angegebenen Index zurück.introwCount()Gibt die Reihenanzahl des Gitters zurück.Gibt einen vorkonfiguriertenToStringFormatteraus.Methods inherited from class pi.graphics.boxes_ng.PaddingBox
paddingMethods inherited from class pi.graphics.boxes_ng.ChildsBox
addChild, forEachCell, forEachChild, numberOfChildsMethods inherited from class pi.graphics.boxes_ng.Box
anchor, anchorMeter, debug, disable, disabled, enable, hasDefiniedDimension, hasOnlyDefiniedHeight, hasOnlyDefiniedWidth, height, height, heightMeter, heightMeter, iterator, measure, measureAnchors, measureDimension, pixelPerMeter, pixelPerMeter, remeasure, render, render, toggle, toString, updateValue, width, width, widthMeter, widthMeter, x, x, xMeter, xMeter, y, y, yMeter, yMeter, yTopMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
GridBox
Erstellt eine neue Gitter-Box und baut das Gitter aus den angegebenen Kinder-Boxen auf.- Parameters:
childs- Die Kinder-Boxen, die im Gitter angeordnet werden sollen.
-
-
Method Details
-
columns
Setzt die Anzahl der Spalten im Gitter.- Parameters:
columns- Die Anzahl der Spalten , die im Gitter verwendet werden sollen.- Returns:
- Eine Referenz auf diese Gitter-Box, damit Setter-Ketten möglich sind.
-
columnCount
Gibt die Spaltenanzahl des Gitters zurück.- Returns:
- Die Spaltenanzahl.
-
rowCount
Gibt die Reihenanzahl des Gitters zurück.- Returns:
- Die Reihenanzahl.
-
buildGrid
protected void buildGrid()Baut das interne Gitter anhand der aktuellen Kinder-Boxen und der konfigurierten Spaltenanzahl auf. -
getRow
Liefert dieCellBox-Zeile mit dem angegebenen Index zurück.- Parameters:
row- Der Index der gewünschten Zeile.- Returns:
- Die Zellen der angegebenen Zeile.
-
forEachRowBox
Wendet für jede Zelle einer Zeile einen Consumer an.- Parameters:
row- Der Index der Zeile.consumer- Die Funktion, die für jede gefundene Zelle aufgerufen wird.- Returns:
- Eine Referenz auf diese Gitter-Box.
-
getMaxHeightOfRow
public double getMaxHeightOfRow(int row) Bestimmt die maximale Höhe der angegebenen Zeile.- Parameters:
row- Der Index der Zeile.- Returns:
- Die größte Höhe aller Zellen in der Zeile.
-
getColumn
Liefert dieCellBox-Spalte mit dem angegebenen Index zurück.- Parameters:
column- Der Index der gewünschten Spalte.- Returns:
- Die Zellen der angegebenen Spalte.
-
forEachColumnBox
Wendet für jede Zelle einer Spalte einen Consumer an.- Parameters:
column- Der Index der Spalte.consumer- Die Funktion, die für jede gefundene Zelle aufgerufen wird.- Returns:
- Eine Referenz auf diese Gitter-Box.
-
forBox
Wendet einen Consumer auf eine bestimmte Zelle im Gitter an.- Parameters:
row- Die Zeile der Zelle.column- Die Spalte der Zelle.consumer- Die Funktion, die für die Zelle aufgerufen wird.- Returns:
- Eine Referenz auf diese Gitter-Box.
-
getMaxWidthOfColumn
public double getMaxWidthOfColumn(int column) Bestimmt die maximale Breite der angegebenen Spalte in Pixel.- Parameters:
column- Der Index der Spalte.- Returns:
- Die größte Breite in Pixel aller Zellen in der Spalte.
-
calculateDimension
protected void calculateDimension()Description copied from class:BoxBerechnet 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; }- Overrides:
calculateDimensionin classChildsBox<T extends Box>
-
calculateAnchors
protected void calculateAnchors()Description copied from class:BoxBerechnet rekursiv alle Ankerpunkte (linkes unteres 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; } }- Overrides:
calculateAnchorsin classChildsBox<T extends Box>
-
toStringFormatter
Description copied from class:BoxGibt einen vorkonfiguriertenToStringFormatteraus.- Overrides:
toStringFormatterin classPaddingBox<T extends Box>
-