Show TOC

Dynamische und statische KontextmenüsLocate this document in the navigation structure

Verwendung

In Web Dynpro ABAP können Sie eigene Kontextmenüs für Ihre Benutzungsoberflächen sowohl dynamisch als auch statisch erstellen. Dazu stehen entsprechende UI-Elemente und die Hook-Methode WDDOONCONTEXTMENU zur Verfügung.

Dynamische Kontextmenüs

Im Gegensatz zu statischen Kontextmenüs (siehe ContextMenuProvider) können Sie dynamische Kontextmenüs definieren, so dass beispielsweise bei einer bestimmten Zeile einer Table ein anderes Kontextmenü angezeigt wird als bei einer anderen Zeile.

Beispiel

Beispiel einer Table mit Fluggesellschaften

Kontextmenü für die Fluggesellschaft AA:

Kontextmenü für die Fluggesellschaft BA:

Für die Definition dieser Art von Kontextmenüs verwenden Sie die Hook-Methode WDDOONCONTEXTMENU. Diese Methode verwendet als Importparameter CONTEXT_MENU_EVENT vom Typ

IF_WD_CONTEXT_MENU_EVENT sowie CONTEXT_MENU_MANAGER vom Typ

IF_WD_CONTEXT_MENU_MANAGER und gibt über den Parameter MENU vom Typ CL_WD_MENU das Kontextmenü zurück.

Beispiel

Sie finden ein Beispiel für dynamische Kontextmenüs im System in der Component WDR_TEST_CONTEXT_MENU sowie DEMO_CONTEXT_MENU_DYNAMIC.

Statische Kontextmenüs

Sie können für Ihre Views im View Designer des Web Dynpro Explorers Kontextmenüs definieren. Diese werden nur (und ausschließlich dann) automatisch vom Web-Dynpro-ABAP-Framework gezogen, wenn sie auch für bestimmte View-Elemente mittels ContextMenuBehaviour und ContextMenuID deklariert wurden.

Zusätzlich kann man ein Kontextmenü auch statisch definieren, ohne dass es automatisch gerufen wird. Dann ist es lediglich definiert, und man kann sich dann in WDDOONCONTEXTMENU das Menü geben lassen, um es dann noch entsprechend modifizieren zu können.

Parallel zum ROOTUIELEMENTCONTAINER gibt es im View Designer das "Element" CONTEXT_MENUS, das nur als Pool aller für die View gebrauchten Kontextmenüs dient. Dort werden die statisch deklarierten Kontextmenüs angelegt. Das Anlegen funktioniert wie auch für die sonstigen UI-Elemente über das Kontextmenü.

Beispiel

Zusätzlich gibt es an bestimmten View-Elementen (alle, die von CL_WD_CTXT_MENU_PROVIDER erben) zwei zusätzliche Properties: ContextMenuBehaviour und ContextMenuId. Diese beiden Properties sind dazu gedacht, dass man schon statisch festlegen kann, welches Kontextmenü vom Framework verwendet werden soll.

Beispiel

Sie finden ein Beispiel für statische Kontextmenüs im System in der Component DEMO_CONTEXT_MENU_STATIC.