Show TOC

TreeLocate this document in the navigation structure

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 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.

Hinweis

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.

Hinweis

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

id

STRING

(automatisch)

nein

contextMenuBehaviour

WDUI_CONTEXT_MENU_BEHAVIOUR

inherit

nein

contextMenuId

WDY_MD_UI_ELEMENT_REFERENCE

 

nein

dataSource

Context-Knoten

 

muss

defaultItemIconSource

STRING

 

ja

defaultNodeIconSource

STRING

 

ja

enabled

WDY_BOOLEAN

true

ja

minHeight

STRING

 

ja

rootText

Übersetzbarer Text

 

ja

rootVisible

WDY_BOOLEAN

true

ja

selectionChangeBehaviour

WDUI_LEAD_SEL_CHNG_BEHVR

auto

nein

styleClassName STRING   ja

title

Übersetzbarer Text

 

ja

titleVisible

WDUI_VISIBILITY

visible

ja

tooltip

Übersetzbarer Text

 

ja

visible

WDUI_VISIBILITY

visible

ja

width

STRING

 

ja

Aggregationen im View Designer

Events im View Designer

Hinweis

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.

Dynamische Programmierung der Eigenschaften

View Designer Name Laufzeitname Typ

contextMenuBehaviour

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

contextMenuId

CONTEXT_MENU_ID

WDY_MD_UI_ELEMENT_REFERENCE

dataSource

DATA_SOURCE

OBJECT

defaultItemIconSource

DEFAULT_ITEM_ICON_SOURCE

STRING

defaultNodeIconSource

DEFAULT_NODE_ICON_SOURCE

STRING

enabled

ENABLED

WDY_BOOLEAN

minHeight

MIN_HEIGHT

STRING

rootText

ROOT_TEXT

WDY_MD_TRANSLATABLE_TEXT

rootVisible

ROOT_VISIBLE

WDY_BOOLEAN

selectionChangeBehaviour

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

TITLE

WDY_MD_TRANSLATABLE_TEXT

titleVisible

TITLE_VISIBLE

WDUI_VISIBILITY

titleVisible: none

CL_WD_TREE=>E_TITLE_VISIBLE-NONE

titleVisible: visible

CL_WD_TREE=>E_TITLE_VISIBLE-VISIBLE

tooltip

TOOLTIP

WDY_MD_TRANSLATABLE_TEXT

visible

VISIBLE

WDUI_VISIBILITY

visible: none

CL_WD_TREE=>E_VISIBLE-NONE

visible: visible

CL_WD_TREE=>E_VISIBLE-VISIBLE

width

WIDTH

STRING

Dynamische Programmierung der Ereignisse

View Designer Name Laufzeitname

onDrop

ON_DROP

onExpandAll

ON_EXPAND_ALL

Dynamische Programmierung der Aggregationen

View Designer Name Laufzeitname Kardinalität

DROP_TARGET_INFO

DROP_TARGET_INFO

0..1

Knotentyp

NODE_TYPES

0..n

Beispiel

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_*.