
Das MatrixLayout ordnet die Oberflächenelemente tabellenartig in einer Gitterstruktur an. Es verwendet vordefinierte Zellklassen, die angemessene Zellenabstände für das ganze Gitter gewährleisten. Mit der Eigenschaft vGutter ist es möglich, auf einfache Weise zusätzliche horizontale Abstände zu bestimmen. Diese zusätzlichen Abstände (Gutter) können Sie mit und ohne Trennlinien verwenden. Außerdem kann das MatrixLayout zur zusätzlichen Trennung der Reihen horizontale Trenner, die durch das HorizontalGutter-Oberflächenelement repräsentiert werden, aufnehmen. Diese Layout-Art trägt somit wesentlich zu einer einheitlichen Layout-Struktur in einem Container bei und sollte daher dem GridLayout vorgezogen werden. Mit MatrixHeadData können Sie bestimmen, mit welchem Oberflächenelement eine neue Zeile begonnen wird.
Die Verwendung geschachtelter MatrixLayouts sollte vermieden werden und wenn möglich durch RowLayouts ersetzt werden. Das RowLayout unterscheidet sich vom MatrixLayout dadurch, dass der Inhalt nicht in Tabellenzellen organisiert ist, d.h. die einzelnen Elemente sind nicht gegenseitig an einer vertikalen Linie ausgerichtet. Die Implementierung des RowLayouts weist sich gegenüber dem MatrixLayout durch ein besseres Leistungsverhalten der Anwendung aus und mindert nicht die Flexibilität der Layoutgestaltung. Deswegen sollten Sie möglichst zu Beginn die View bzw. den Container mit Hilfe der RowLayouts in horizontale Bereiche strukturieren. Erst wenn eine tabellenartige Darstellung mit Ausrichtung der Elemente an einer vertikalen Linie erforderlich ist, sollte das MatrixLayout verwendet werden.
Implementierungsdetails
|
Laufzeit-Klasse |
CL_WD_MATRIX_LAYOUT |
|
Name |
Typ |
Anfangswert |
Bindbar |
|---|---|---|---|
|
STRING |
(automatisch) |
nein |
|
|
WDY_BOOLEAN |
false |
nein |
|
|
WDY_BOOLEAN |
false |
nein |
|
Name |
Kardinalität |
Typ |
|---|---|---|
|
0..1 |
||
|
0..1 |
|
Name |
|---|
Layout-Daten sind generell nicht bindbar.
Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:
Dynamische Programmierung
Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.
|
View Designer Name |
Laufzeitname |
Typ |
|---|---|---|
|
STRETCHED_HORIZONTALLY |
WDY_BOOLEAN |
|
|
STRETCHED_VERTICALLY |
WDY_BOOLEAN |
Beachten Sie, dass bei der dynamischen Programmierung die Default-Werte von stretchedHorizontally und stretchedVertically auf true stehen, während sie im View Designer auf false stehen.
|
View Designer Name |
Laufzeitname |
|---|---|
|
ON_DROP |
|
View Designer Name |
Laufzeitname |
Kardinalität |
|---|---|---|
|
DRAG_SOURCE_INFO |
0..1 |
|
|
DROP_TARGET_INFO |
0..1 |