
Die Beispiel-Applikation DEMO_CONTEXT_MENU_DYNAMIC zeigt die Möglichkeiten, die bei der dynamischen Variante von Kontextmenüs bestehen.
In der Beispiel-Applikation wird eine Table mit Flugdaten angezeigt.
Beim Aufruf des Kontextmenüs auf einer Zeile wird zuerst geklärt, wo das Kontextmenü gerufen wurde (in diesem Beispiel beginnen alle Table-Spalten mit FLIGHTS_TABLE_, was als Kriterium genügt. Danach wird das Kontextmenü dynamisch erzeugt und nachgesehen, ob der Flug buchbar ist (Flugdatum in der Zukunft sowie noch freie Plätze). Wenn der Flug buchbar ist, ist der Kontextmenü-Eintrag enabled. Ansonsten ist er disabled. Das alles passiert, wenn die Hook-Methode WDDOONCONTEXTMENU gerufen wird.
Auf der Anwendung erscheint ein Kontextmenü, das sich aus dem Eintrag der Anwendung und den Systemeinträgen zusammensetzt (Einträge für die Personalisierung und Feldhilfe). Wenn man das Kontextmenü für einen buchbaren Flug geöffnet hat, dann ist der Eintrag Flug buchen auch enabled, ansonsten ist er disabled. Wenn man nun das Flug buchen Kontextmenü-Element anklickt, gelangt man in der Anwendung in den entsprechenden Actionhandler ( ONACTIONCONTEXT_MENU_ACTION). In dieser Beispielanwendung passiert weiter nicht viel, es wird nur eine Buchungsbestätigung ausgegeben, allerdings ohne eine Buchung durchzuführen.
Anmerkungen
Es ist nur möglich, ein Kontextmenü zurückzugeben. Dieses kann aus mehreren Einträgen bestehen. Zur Verfügung stehen UI-Elemente für Menüs (Sie können ein Menü in einem Menü schachteln), Submenüs, Action Items, CheckBox es, RadioButton s und Separatoren.
Die Aktionen, die auf eine Auswahl im Kontextmenü gerufen werden, übergeben die Standard-Eventparameter (d.h.: ein CheckBox-Item übergibt im Action-Handler natürlich auch seinen CHECKED-Wert).
Die Systemmenüs (für die Personalisierung und die Feldhilfe) sind automatisch immer dabei enthalten.