!--a11y-->
Tree 
Mit Hilfe des Tree-Oberflächenelements können im Context definierte Hierarchien visualisiert werden. Die darzustellende Hierarchie wird zunächst im Context definiert. Es gibt zwei Möglichkeiten, diese Context-Struktur zu beschreiben:
● mit rekursiven Knoten, wenn zur Design-Zeit die Anzahl der Ebenen noch nicht bekannt ist
● mit nicht-rekursiven Knoten, wenn zur Design-Zeit bereits eine bestimmte Anzahl an Ebenen festgelegt werden kann
Ein Tree dient also der Navigation. Durch
Anklicken eines Eintrags werden die damit verbundenen Daten an anderer Stelle
angezeigt. Wenn Sie eine Baumstruktur visualisieren möchten, die zur Eingabe
geeignet ist und darüber hinaus die Möglichkeit zum Scrolling anbieten
möchten, verwenden Sie statt eines Tree eine hierarchische Tabelle, siehe auch
TreeByKeyTableColumn
und
TreeByNestingTableColumn.
Ein Tree bietet nicht die Möglichkeit der Selektion von Einträgen - er kann
nur mit der LeadSelection umgehen. Beachten Sie, dass dies visuell wie eine
Selektion aussieht, es ist jedoch von der Performance her eine sehr teure
Operation, so dass es in den meisten Szenarien eher hinderlich wäre.
Beispiel für die visuelle Darstellung
|
|
Das Tree-Oberflächenelement wird gegen den obersten Context-Knoten gebunden, der dargestellt werden soll.
Mit Hilfe von Knoten (
TreeNodeType-Elemente)
bzw. Blättern (
TreeItemType-Elemente)
wird festgelegt, welche der Unterknoten dargestellt werden sollen und vor
allem, welche Context-Attribute auf diesen Unterknoten als Text bzw. Tooltip
dargestellt sollen. Die Eigenschaft dataSource des TreeNodeType-Elements bzw.
TreeItemType-Elements wird hierzu gegen den entsprechenden Context-Knoten
gebunden, die Eigenschaften text, tooltip etc. werden gegen die entsprechenden
Context-Attribute auf diesem Context-Knoten gebunden.
TreeItemType-Elemente können niemals Kinder haben und werden deshalb immer als Blätter angezeigt. Sie werden dann verwendet, wenn schon zur Design-Zeit feststeht, dass der entsprechende Knoten keine Kinder hat. Bei TreeNodeType-Elemente wird erst zur Laufzeit dynamisch bestimmt, ob es Kinder gibt.

Es können keine im Context definierten Hierarchiestufen bei der Darstellung des Oberflächenelements ausgelassen werden. Zum Beispiel muss zur Darstellung der Items für die in einem Context definierte Hierarchie Customer ® Orders ® Items auch ein gegen die Orders gebundenes TreeNodeType-Element existieren.
Bei allen Knoten, die nicht direkt unter dem Context-Wurzelknoten hängen, muss es sich um Nicht-Singleton-Knoten handeln, da in einem Baum alle Elemente angezeigt werden sollen, unabhängig von der Lead-Selection.
Sie können den Tree auch so binden, dass die dataSource des Trees auf einen struktuierenden 1:1 Knoten bindet und die Element-Knoten des Trees sich erst darunter befinden. Dies ist für die Abbildung von Verzeichnisstrukturen notwendig. Bei rekursiven Trees können Sie die Rekursion gegen diesen 1:1-Knoten zeigen lassen. Dabei wird dieser dann beim Rendering übersprungen.

Um die Entwicklung
barrierefreier
Anwendungen zu ermöglichen, wird im Rahmen des Syntaxchecks die Eigenschaft
tooltip überprüft.
Laufzeit-Klasse |
CL_WD_TREE |
Eigenschaften im View Designer
Name |
Typ |
Anfangswert |
Bindbar |
id |
STRING |
(automatisch) |
nein |
Context-Knoten |
|
muss |
|
STRING |
|
ja |
|
STRING |
|
ja |
|
WDY_BOOLEAN |
true |
ja |
|
STRING |
|
ja |
|
Übersetzbarer Text |
|
ja |
|
WDY_BOOLEAN |
true |
ja |
|
WDUI_LEAD_SEL_CHNG_BEHVR |
auto |
nein |
|
Übersetzbarer Text |
|
ja |
|
WDUI_VISIBILITY |
visible |
ja |
|
Übersetzbarer Text |
|
ja |
|
WDUI_VISIBILITY |
visible |
ja |
|
STRING |
|
ja |
Aggregationen im View Designer
Name |
Kardinalität |
Typ |
0..n |
Events im View Designer
Name |

Weitere Eigenschaften, die über Vererbung zur Verfügung stehen, sind in den dazugehörigen übergeordneten Klassen definiert. Die dazugehörigen Oberflächenelemente sind:
Für die dynamische Programmierung stehen dieselben Eigenschaften, Ereignisse und Aggregationen zur Verfügung wie im View Designer. Beachten Sie dabei die unterschiedlichen Schreibweisen.
Dynamische Programmierung der Eigenschaften
View Designer Name |
Laufzeitname |
Typ |
DATA_SOURCE |
OBJECT |
|
DEFAULT_ITEM_ICON_SOURCE |
STRING |
|
DEFAULT_NODE_ICON_SOURCE |
STRING |
|
ENABLED |
WDY_BOOLEAN |
|
MIN_HEIGHT |
STRING |
|
ROOT_TEXT |
WDY_MD_TRANSLATABLE_TEXT |
|
ROOT_VISIBLE |
WDY_BOOLEAN |
|
SELECTION_CHANGE_BEHAVIOUR |
WDUI_LEAD_SEL_CHNG_BEHVR |
|
selectionChangeBehaviour: auto |
CL_WD_TREE=>E_SELECTION_CHANGE_BEHAVIOUR-AUTO |
|
selectionChangeBehaviour: manual |
CL_WD_TREE=>E_SELECTION_CHANGE_BEHAVIOUR-MANUAL |
|
TITLE |
WDY_MD_TRANSLATABLE_TEXT |
|
TITLE_VISIBLE |
WDUI_VISIBILITY |
|
titleVisible: none |
CL_WD_TREE=>E_TITLE_VISIBLE-NONE |
|
titleVisible: visible |
CL_WD_TREE=>E_TITLE_VISIBLE-VISIBLE |
|
TOOLTIP |
WDY_MD_TRANSLATABLE_TEXT |
|
VISIBLE |
WDUI_VISIBILITY |
|
visible: none |
CL_WD_TREE=>E_VISIBLE-NONE |
|
visible: visible |
CL_WD_TREE=>E_VISIBLE-VISIBLE |
|
WIDTH |
STRING |
|
Dynamische Programmierung der Ereignisse
View Designer Name |
Laufzeitname |
ON_EXPAND_ALL |
Dynamische Programmierung der Aggregationen
View Designer Name |
Laufzeitname |
Kardinalität |
NODE_TYPES |
0..n |
Beispiele für dieses Oberflächenelement finden Sie im System in der Web-Dynpro-Applikation WDR_TEST_UI_ELEMENTS sowie in der Component WDR_TEST_EVENTS in den Views TREE_*.