
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:
Diese drei Fälle werden durch die Property ContextMenuProvider-Eigenschaften ausgedrückt.
Ein "Provider" setzt zusätzlich die Property ContextMenuProvider-Eigenschaften 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 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 und statische 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 |
|---|---|---|---|
|
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. Das dazugehörige Oberflächenelement ist ViewElement.
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 |