Tree
Hierarchies defined in the context can be visualized using the Tree UI element. The hierarchy to be displayed is defined in the context. You can describe this context structure in two ways:
● With a recursive node if the number of levels is not yet known at design time
● With a non-recursive node if a certain number of levels can be specified at design time
A tree is therefore
used for navigation. By clicking
on an entry the associated data is displayed in another place. If you want to display a tree structure in
which data can be input and you want to provide a scroll bar, use a
hierarchical table instead of a tree. More information:
TreeByKeyTableColumn
and
TreeByNestingTableColumn.
A tree does not enable the user to
select entries, it can only interact with the LeadSelection. Note that although this looks like a
selection, it does affect performance, which means that for most scenarios it
would be a hindrance.
Example of the Visual Display
|
|
The Tree UI element is bound against the top-level context node to be displayed.
You use nodes (
TreeNodeType
elements) or leaves (
TreeItemType
elements) to specify which subnodes are to be displayed and which context
attributes are to be displayed on these subnodes as a text or tooltip.
The dataSource property of the
TreeNodeType element or TreeItemType element is bound to the corresponding
context node and the properties text, tooltip, and so on, are bound to the
corresponding context attributes on this context node.
TreeItemType elements cannot have children. Therefore, they are always displayed as leaves. They are used when it is decided at design time that the corresponding node does not have children. When using TreeNodeType elements, the decision of whether to use children is dynamically made at runtime.

Hierarchy levels defined in the context cannot be left out when displaying the UI element. For example, a TreeNodeType element that is bound to the Orders must also exist to display the items for the hierarchy Customers → Orders → Items, which is defined in a context.
All nodes that are not directly below the context root node must be non-singleton nodes, because all elements should be displayed in a tree regardless of the lead selection.
You can also bind the tree so that the dataSource of the tree binds to a structured 1:1 node and the element nodes of the tree are located below them. This is necessary to map directory structures. With recursive trees you can display the recursions for this 1:1 node. This is then skipped with rendering.

To enable the
development of
accessible
applications, the tooltip property is checked during the syntax
check.
Runtime Class |
CL_WD_TREE |
Properties in the View Designer
Name |
Type |
Initial Value |
Bindable |
STRING |
(automatic) |
No |
|
WDUI_CONTEXT_MENU_BEHAVIOUR |
inherit |
No |
|
WDY_MD_UI_ELEMENT_REFERENCE |
|
No |
|
Context node |
|
Mandatory |
|
STRING |
|
Yes |
|
STRING |
|
Yes |
|
WDY_BOOLEAN |
true |
Yes |
|
STRING |
|
Yes |
|
Translatable text |
|
Yes |
|
WDY_BOOLEAN |
true |
Yes |
|
WDUI_LEAD_SEL_CHNG_BEHVR |
auto |
No |
|
Translatable text |
|
Yes |
|
WDUI_VISIBILITY |
visible |
Yes |
|
Translatable text |
|
Yes |
|
WDUI_VISIBILITY |
visible |
Yes |
|
STRING |
|
Yes |
Aggregations in the View Designer
Name |
Cardinality |
Type |
0..1 |
||
0..n |
Events in the View Designer
Name |

Other properties that can be inherited are defined in the associated higher-level classes. The associated UI elements are:
For dynamic programming, the same properties, events, and aggregations as in the View Designer are available. Bear in mind the different spellings.
Dynamic Programming of Properties
View Designer Name |
Runtime Name |
Type |
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 |
|
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 |
|
Dynamic Programming of Events
View Designer Name |
Runtime Name |
ON_DROP |
|
ON_EXPAND_ALL |
Dynamic Programming of Aggregations
View Designer Name |
Runtime Name |
Cardinality |
DROP_TARGET_INFO |
0..1 |
|
NODE_TYPES |
0..n |
You can find examples of this interface element in the system in the Web Dynpro application WDR_TEST_UI_ELEMENTS, and in the component WDR_TEST_EVENTS in the views TREE_*.