
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:
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 auchTreeByKeyTableColumn undTreeByNestingTableColumn. 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 Entwicklungbarrierefreier 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 |
|---|---|---|---|
|
STRING |
(automatisch) |
nein |
|
|
WDUI_CONTEXT_MENU_BEHAVIOUR |
inherit |
nein |
|
|
WDY_MD_UI_ELEMENT_REFERENCE |
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 |
|
| styleClassName | STRING | ja | |
|
Ü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..1 |
||
|
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 |
|---|---|---|
|
CONTEXT_MENU_BEHAVIOUR |
WDUI_CONTEXT_MENU_BEHAVIOUR |
|
|
contextMenuBehaviour: inherit |
CL_WD_TREE=>E_CONTEXT_MENU_BEHAVIOUR-INHERIT |
|
|
contextMenuBehaviour: provide |
CL_WD_TREE=>E_CONTEXT_MENU_BEHAVIOUR-PROVIDE |
|
|
contextMenuBehaviour: suppress |
CL_WD_TREE=>E_CONTEXT_MENU_BEHAVIOUR-SUPPRESS |
|
|
CONTEXT_MENU_ID |
WDY_MD_UI_ELEMENT_REFERENCE |
|
|
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 |
|
| styleClassName | STYLE_CLASS_NAME | STRING |
|
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_DROP |
|
|
ON_EXPAND_ALL |
Dynamische Programmierung der Aggregationen
| View Designer Name | Laufzeitname | Kardinalität |
|---|---|---|
|
DROP_TARGET_INFO |
0..1 |
|
|
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_*.