
Die Applikation DEMO_POPUPS_01 der Component DEMO_POPUPS_01 in Paket SWDP_DEMO zeigt eine Demo-Anwendung für Dialogfenster, wobei das Dialogfenster und das Hauptfenster zur gleichen Component gehören.
Die Anwendung DEMO_POPUPS_01 verdeutlicht die folgenden Aspekte im Umgang mit Dialogfenstern in Web Dynpro ABAP:
Erzeugen, Öffnen und Schließen eines Dialogfensters, dessen Window zur selben Component gehört, wie der aufrufende Controller
Setzen einiger Dialogfenster-Eigenschaften
Registrieren von Action-Handlern auf die Dialogfenster-Buttons
Schließen des Dialogfensters in Abhängigkeit einer Bedingung
Im Folgenden wird die Funktionsweise und Bedienung der genannten Anwendung zunächst allgemein erläutert, bevor auf die einzelnen relevanten Methoden der zugehörigen Component eingegangen wird.
Hinweis
Allgemeine Informationen über Dialogfenster finden Sie unter Arbeiten mit Dialogfenstern.
Die Anwendung DEMO_POPUPS_01 bietet die Möglichkeit, verschiedene Dialogfenster-Eigenschaften dynamisch zu setzen und dadurch deren Auswirkung auf das Erscheinungsbild und das Verhalten des Dialogfensters zu überprüfen.
Folgende Eigenschaften können gesetzt werden:
Titel des Dialogfensters
Dialogfenster-Buttons
Default-Button
Ikone, die im Dialogfenster dargestellt werden soll
Abbrechen-Symbol
Kennzeichen, ob das Dialogfenster beim Klick auf einen Dialogfenster-Button automatisch geschlossen werden soll
Wird der Titel nicht gesetzt, so wird der Titel des Vater-Dialogfensters angezeigt. Hat das Dialogfenster kein Vater-Dialogfenster, dann wird der Beschreibungstext der Anwendung als Titel des Dialogfensters übernommen. Hat die Anwendung keinen Beschreibungstext, dann wird der Name der Anwendung, gefolgt von dem Text Web Dynpro ABAP, als Titel ausgegeben.
Sie können eine der folgenden Kombinationen von Dialogfenster-Buttons wählen:
Ok.
Schließen
Ok., Abbrechen
Ja, Nein
Ja, Nein, Abbrechen
Abbrechen, Wiederholen, Ignorieren
Sie können einen bestimmten Button der o.g. gewählten Button-Kombination als Default-Button markieren. Dieser Button wird dann fokussiert dargestellt. Außerdem wird beim Betätigen der Enter-Taste innerhalb des Dialogfensters die zu dem Default-Button gehörende Action ausgeführt (falls eine solche registriert wurde).
Im Dialogfenster kann eine Ikone angezeigt werden. Die folgenden Ikonen stehen zur Verfügung:
Information
Fehler
Abbruch
Warnung
Hinweis
Beachten Sie, dass die Ikone Frage veraltet ist. Die Auswahl dieser Ikone zeigt daher keine Wirkung.
Sie können angeben, ob das Dialogfenster ein Abbrechen-Symbol (kleines Kreuz
(Cancel-Symbol) im rechten oberen Rand) erhalten soll.
Wird keine Action auf einen Dialogfenster-Button registriert, dann wird das Dialogfenster beim Klick auf diesen Button automatisch geschlossen. Werden dagegen Actions auf die Dialogfenster-Buttons registriert, dann können Sie angegeben, ob das Dialogfenster beim Klick auf einen der Buttons automatisch geschlossen werden soll (Standard-Verhalten) oder nicht. Dies ist insbesondere dann von Interesse, wenn ein Dialogfenster nur bei Zutreffen einer bestimmten Bedingung geschlossen werden soll.
Durch Löschen der Markierung bei der Checkbox Dialogfenster automatisch schließen in der Anwendung DEMO_POPUPS_01 können Sie das automatische Schließen des Dialogfensters abschalten.
Das Dialogfenster wird im Action-Handler ONACTIONSHOW_POPUP der View MAIN erzeugt und geöffnet. In dieser Methode werden auch die vom Benutzer gewählten Dialogfenster-Eigenschaften aus dem entsprechenden Context-Knoten ausgelesen. Diese Eigenschaften können entweder direkt (wie in diesem Beispiel) beim Erzeugen des Dialogfensters oder später mit Hilfe der Programmierschnittstelle IF_WD_WINDOW gesetzt werden.
Die View V_POPUP_01 ist in das Window POPUP_01 des Dialogfensters eingebettet. In der Methode WDDOINIT dieser View wird die Registrierung von Actions auf die Dialogfenster-Buttons durchgeführt. Die entsprechenden Actions befinden sich ebenfalls in der View V_POPUP_01.
Sie schalten durch Markieren der Checkbox Aktionen auf Buttons des Dialogfensters registrieren ? in der Anwendung DEMO_POPUPS_01 die Registrierung der Actions ein.
Beim Erzeugen des Dialogfensters (im Action-Handler ONACTIONSHOW_POPUP der View MAIN) wird über den Parameter CLOSE_IN_ANY_CASE gesteuert, ob das Dialogfenster beim Klick auf einen Dialogfenster-Button automatisch geschlossen werden soll (Checkbox Dialogfenster automatisch schließen). Ist dies nicht der Fall (der Parameter CLOSE_IN_ANY_CASE hat der Wert ABAP_FALSE), muss das Dialogfenster explizit geschlossen werden. Dazu sind folgende Schritte notwending:
Registrieren von Actions auf alle Dialogfenster-Buttons der gewählten Button-Kombination
Hinweis
Ist auf einen Button keine Action registriert, dann wird das Dialogfenster beim Klick auf diesen Button nicht geschlossen.
Schließen des Dialogfensters in allen registrierten Actions (siehe z.B. Action YES der View V_POPUP_01), eventuell in Abhängigkeit einer Bedingung
Ist ein Abbrechen-Button in der gewählten Button-Kombination enthalten, ist es meistens sinnvoll, das Dialogfenster in jedem Fall zu schließen, und zwar unabhängig von eventuell vorhandenen Fehlern. Wird für das Dialogfenster das automatische Schließen abgeschaltet, dann muss dieses wie oben beschrieben, explizit in einer auf den Abbrechen-Button registrierten Action durchgeführt werden. Damit diese Action auch dann durchlaufen wird, wenn Fehler vorhanden sind, müssen Sie die Action als Validierungsunabhängig kennzeichnen.