ContextMenuProvider
Mit dem ContextMenuProvider kann eine Anwendung ihre eigenen Kontextmenüs erstellen. Die Kontextmenüs werden immer an einer View definiert. Dazu steht im View Designer neben dem ROOTUIELEMENTCONTAINER für jede View immer der Eintrag CONTEXT_MENUS zur Verfügung. Hier können Sie Ihr gewünschtes Kontextmenü zur Designzeit definieren.
Die Zuordnung dieser Menüs zu View-Elementen passiert wie folgt. Jedes View-Element hat drei Möglichkeiten:
● Es erbt das Kontextmenü von seinem Vater (in der Containment-Hierarchie)
● Es unterdrückt sein Kontextmenü
● Es stellt ein (am View definiertes) Kontextmenü zur Verfügung
Diese drei Fälle werden durch die Property contextMenuBehaviour ausgedrückt.
Ein "Provider" setzt zusätzlich die Property contextMenuId auf die ID seines Menüs. Damit benötigt man an jedem (potentiellen) Provider diese beiden neuen Properties. Ein Provider kann sein:
● Jede UI-Element-Subklasse
● Einige ausgesuchte View-Element-Subklassen (TableColumn, Tab, etc)
Jede UI-Element-Subklasse ist nun automatisch ein (potenzieller) Provider. Für die entsprechenden View-Element-Subklassen wurde die Vererbungshierarchie derart geändert, dass sie von ContextMenuProvider statt von ViewElement erben.

Der ContextMenuProvider dient der statischen Definition von Kontextmenüs. Für das dynamische Erzeugen von Kontextmenüs stehen die Methode WDONCONTEXTMENU und der Context-Menu-Manager (IF_WD_CONTEXT_MENU_MANAGER) zur Verfügung. Siehe auch Dynamische Kontextmenüs.
Beispiel für die visuelle Darstellung
|
Darstellung in der Applikation |
Darstellung im View Designer |
|
|
|
Laufzeit-Klasse |
CL_WD_CTX_MENU_PROVIDER |
Eigenschaften im View Designer
Name |
Typ |
Anfangswert |
Bindbar |
id |
STRING |
(automatisch) |
nein |
WDUI_CONTEXT_MENU_BEHAVIOUR |
inherit |
nein |
|
STRING |
|
nein |

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_CTX_MENU_PROVIDER=>E_CONTEXT_MENU_BEHAVIOUR-INHERIT |
|
contextMenuBehaviour: provide |
CL_WD_CTX_MENU_PROVIDER=>E_CONTEXT_MENU_BEHAVIOUR-PROVIDE |
|
contextMenuBehaviour: suppress |
CL_WD_CTX_MENU_PROVIDER=>E_CONTEXT_MENU_BEHAVIOUR-SUPPRESS |
|
CONTEXT_MENU_ID |
STRING |
|