Class Box
- Direct Known Subclasses:
BackgroundBox,BorderBox,CellBox,ChildsBox,CombinedChildBox,InsetBox,LeafBox
- Since:
- 0.38.0
- Author:
- Josef Friedrich
-
Field Summary
FieldsModifier and TypeFieldDescriptionAlle Kinder-Boxen, die diese Box enthält.protected intDie gesetzte Höhe in Pixel.protected intDie gesetzte Breite in Pixel.protected booleanDie Box wird nicht gezeichnet, wenn sie deaktiviert ist.protected intDie Höhe der Box in Pixel.protected booleanIst dieses Attribut wahr, so wird diecalculateDimension()-Methode zweimal hintereinander rekursive aufgerufen.protected @Nullable BoxDie übergeordnete Box, in der diese Box enthalten ist.protected booleanGibt an, ob bei dieser Box die Abmessungen gesetzt werden können oder ob die Abmessungen nur automatisch bestimmt werden können.protected intDie Breite der Box in Pixel.protected intDie x-Koordinate der linken oberen Ecke in Pixel.protected intDie y-Koordinate der linken oberen Ecke in Pixel. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionanchor(int x, int y) Setzt die x- und y-Koordinate der linken oberen Ecke in Pixel.protected abstract voidBerechnet rekursiv alle Ankerpunkte (linkes oberes Eck) der untergeordneten Kinder-Boxen.protected abstract voidBerechnet rekursiv die Abmessung (die Höhe und Breite) der eigenen Box.debug()disable()Deaktiviert die Box.disabled(boolean disabled) Setzt den Deaktiviert-Status.enable()Aktiviert die Box.booleanPrüft, ob für diese Box mindestens eine Abmessung explizit gesetzt wurde.booleanPrüft, ob nur die Höhe explizit gesetzt wurde.booleanPrüft, ob nur die Breite explizit gesetzt wurde.intheight()Gibt die Höhe der Box in Pixel zurück.height(int height) Setzt die Höhe der Box in Pixel.doubleheightMeter(double pixelPerMeter) Berechnet die Höhe der Box in Metern basierend auf der angegebenen Pixel-pro-Meter-Verhältnis.iterator()Liefert einen Iterator über die direkten Kinder dieser Box.voidmeasure()Misst alle Kind-Boxen aus.protected voidprotected voidBerechnet rekursiv die Abmessung (die Höhe und Breite) aller Kind-Boxen und dann die Abmessung eigenen Box.abstract intGibt die Anzahl an Kinder-Boxen zurück.Setzt den Messstatus dieser Box auf „nicht gemessen“ zurück.render(Graphics2D g) Berechnet die Abmessungen und Ankerpunkte und zeichnet die Box.protected intround(double value) toggle()Schaltet zwischen dem Status deaktiviert und aktiviert hin- und her.toString(boolean clean) Bietet die Möglichkeit, dietoString()-Ausgabe der Box-Objekte zu bereinigen.protected ToStringFormatterGibt einen vorkonfiguriertenToStringFormatteraus.intwidth()Gibt die Breite der Box in Pixel zurück.width(int width) Setzt die Breite der Box in Pixel.doublewidthMeter(double pixelPerMeter) Berechnet die Breite der Box in Metern basierend auf der angegebenen Pixel-pro-Meter-Verhältnis.intx()Gibt die x-Koordinate der linken oberen Ecke in Pixel zurück.x(double x, double pixelPerMeter) Setzt die x-Koordinate der linken oberen Ecke in Meter.x(int x) Setzt die x-Koordinate der linken oberen Ecke in Pixel.inty()Gibt die y-Koordinate der linken oberen Ecke in Pixel zurück.y(double y, double pixelPerMeter) Setzt die y-Koordinate der linken oberen Ecke in Meter.y(int y) Setzt die y-Koordinate der linken oberen Ecke in Pixel.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
childs
Alle Kinder-Boxen, die diese Box enthält.- Since:
- 0.41.0
-
parent
Die übergeordnete Box, in der diese Box enthalten ist. Dieses Attribut kannnullsein, wenn keine Elternbox vorhanden ist.- Since:
- 0.38.0
-
supportsDefinedDimension
protected boolean supportsDefinedDimensionGibt an, ob bei dieser Box die Abmessungen gesetzt werden können oder ob die Abmessungen nur automatisch bestimmt werden können. -
measureDimensionTwice
protected boolean measureDimensionTwiceIst dieses Attribut wahr, so wird diecalculateDimension()-Methode zweimal hintereinander rekursive aufgerufen.Falls in der
calculateDimension()-Methode die Abmessungen von Kinder-Boxen verändert werden, ist ein zweiter Messdurchgang nötig.- See Also:
-
width
protected int widthDie Breite der Box in Pixel.- Since:
- 0.40.0
-
definedWidth
protected int definedWidthDie gesetzte Breite in Pixel. Im Gegensatz zuwidthwird dieses Attribut gesetzt und nicht durchcalculateDimension()berechnet. -
height
protected int heightDie Höhe der Box in Pixel.- Since:
- 0.40.0
-
definedHeight
protected int definedHeightDie gesetzte Höhe in Pixel. Im Gegensatz zuheightwird dieses Attribut gesetzt und nicht durchcalculateDimension()berechnet. -
x
protected int xDie x-Koordinate der linken oberen Ecke in Pixel.- Since:
- 0.38.0
-
y
protected int yDie y-Koordinate der linken oberen Ecke in Pixel.- Since:
- 0.38.0
-
disabled
protected boolean disabledDie Box wird nicht gezeichnet, wenn sie deaktiviert ist.
-
-
Constructor Details
-
Box
public Box()
-
-
Method Details
-
iterator
Liefert einen Iterator über die direkten Kinder dieser Box.Standardmäßig sind Boxen ohne Kinder definiert — Container-Subklassen sollten diese Methode überschreiben, um tatsächliche Kinder zu liefern.
-
width
Gibt die Breite der Box in Pixel zurück.- Returns:
- Die Breite der Box in Pixel.
-
widthMeter
Berechnet die Breite der Box in Metern basierend auf der angegebenen Pixel-pro-Meter-Verhältnis.- Parameters:
pixelPerMeter- Das Verhältnis von Pixeln pro Meter für die Umrechnung.- Returns:
- Die Breite der Box in Metern.
- Since:
- 0.46.0
-
width
Setzt die Breite der Box in Pixel.- Parameters:
width- Die Breite der Box in Pixel.- 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
Gibt die Höhe der Box in Pixel zurück.- Returns:
- Die Höhe der Box in Pixel.
-
heightMeter
Berechnet die Höhe der Box in Metern basierend auf der angegebenen Pixel-pro-Meter-Verhältnis.- Parameters:
pixelPerMeter- Das Verhältnis von Pixeln pro Meter für die Umrechnung.- Returns:
- Die Höhe der Box in Metern.
- Since:
- 0.46.0
-
height
Setzt die Höhe der Box in Pixel.- Parameters:
height- Die Höhe der Box in Pixel.- 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(..).
-
hasDefiniedDimension
public boolean hasDefiniedDimension()Prüft, ob für diese Box mindestens eine Abmessung explizit gesetzt wurde.- Returns:
true, wenn eine definierte Breite oder Höhe vorhanden ist, sonstfalse.- Since:
- 0.46.0
-
hasOnlyDefiniedWidth
public boolean hasOnlyDefiniedWidth()Prüft, ob nur die Breite explizit gesetzt wurde.- Returns:
true, wenn eine definierte Breite und keine definierte Höhe vorhanden ist, sonstfalse.- Since:
- 0.46.0
-
hasOnlyDefiniedHeight
public boolean hasOnlyDefiniedHeight()Prüft, ob nur die Höhe explizit gesetzt wurde.- Returns:
true, wenn eine definierte Höhe und keine definierte Breite vorhanden ist, sonstfalse.- Since:
- 0.46.0
-
x
Gibt die x-Koordinate der linken oberen Ecke in Pixel zurück.- Returns:
- Die x-Koordinate der linken oberen Ecke in Pixel.
- Since:
- 0.42.0
-
x
Setzt die x-Koordinate der linken oberen Ecke in Pixel.- Parameters:
x- Die x-Koordinate der linken oberen Ecke in Pixel.- 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(..). - Since:
- 0.38.0
-
x
Setzt die x-Koordinate der linken oberen Ecke in Meter.- Parameters:
x- Die x-Koordinate der linken oberen Ecke in Meter.- 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(..). - Since:
- 0.46.0
-
y
public int y()Gibt die y-Koordinate der linken oberen Ecke in Pixel zurück.- Returns:
- Die y-Koordinate der linken oberen Ecke in Pixel.
- Since:
- 0.42.0
-
y
Setzt die y-Koordinate der linken oberen Ecke in Pixel.- Parameters:
y- Die y-Koordinate der linken oberen Ecke in Pixel.- 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(..). - Since:
- 0.38.0
-
y
Setzt die y-Koordinate der linken oberen Ecke in Meter.- Parameters:
y- Die y-Koordinate der linken oberen Ecke in Meter.- 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(..). - Since:
- 0.46.0
-
anchor
Setzt die x- und y-Koordinate der linken oberen Ecke in Pixel.- Parameters:
x- Die x-Koordinate der linken oberen Ecke in Pixel.y- Die y-Koordinate der linken oberen Ecke in Pixel.- 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(..). - Since:
- 0.38.0
-
disabled
Setzt den Deaktiviert-Status.- 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(..). - Since:
- 0.42.0
-
disable
Deaktiviert die 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(..). - Since:
- 0.42.0
-
enable
Aktiviert die 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(..). - Since:
- 0.42.0
-
toggle
Schaltet zwischen dem Status deaktiviert und aktiviert hin- und her.- 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(..). - Since:
- 0.42.0
-
numberOfChilds
public abstract int numberOfChilds()Gibt die Anzahl an Kinder-Boxen zurück.- Returns:
- Die Anzahl an Kinder-Boxen.
-
calculateDimension
protected abstract void calculateDimension()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; } -
measureDimension
protected void measureDimension()Berechnet rekursiv die Abmessung (die Höhe und Breite) aller Kind-Boxen und dann die Abmessung eigenen Box.Falls das Flag
measureDimensionTwicegesetzt ist, werden diese Berechnungen zweimal durchgeführt. -
calculateAnchors
protected abstract void calculateAnchors()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; } }- Since:
- 0.38.0
-
measureAnchors
protected void measureAnchors() -
measure
public void measure()Misst alle Kind-Boxen aus.Bestimmt rekursiv zuerst die Abmessungen (Höhe und Breite) und anschließend die Ankerpunkte (x, y) der Kind-Boxen.
-
remeasure
Setzt den Messstatus dieser Box auf „nicht gemessen“ zurück.Dies zwingt die Box, ihre Dimensionen bei der nächsten Messung neu zu berechnen.
- 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(..).
-
render
Berechnet die Abmessungen und Ankerpunkte und zeichnet die Box.- Parameters:
g- DasGraphics2D-Objekt, in das gezeichnet werden soll.- 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(..). - Since:
- 0.38.0
-
toStringFormatter
Gibt einen vorkonfiguriertenToStringFormatteraus.- Since:
- 0.42.0
-
debug
- 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(..). - Since:
- 0.42.0
-
round
protected int round(double value) -
toString
Bietet die Möglichkeit, dietoString()-Ausgabe der Box-Objekte zu bereinigen.Ist die Bereinigung aktiv, so werden die ANSI-Farbcodes und die Hashcodes von der Zeichenkette entfernt. Diese Methode ist vor allem für den Einsatz in den Tests gedacht.
- Parameters:
clean- Wenntrue, dann wird die Ausgabe mit dem bereinigt.- Returns:
- Die String-Darstellung des Objekts, entweder bereinigt oder im ursprünglichen Format.
- Since:
- 0.42.0
-