Show TOC

HintergrundController-Ereignisse Dieses Dokument in der Navigationsstruktur finden

 

Ereignisse und Ereignisbehandler von Component-, Custom- Controllern

Auf der Registerkarte Ereignisse eines Component- oder Custom-Controllers können Sie Ereignisse anlegen. Diese Ereignisse können zur Laufzeit ausgelöst werden, um dann ihrerseits Ereignisbehandler anderer Controller aufzurufen.

Zu den angelegten Ereignissen können Sie Importparameter anlegen, das heißt, die das Ereignis auslösende Methode kann einen Parameter an das Ereignis übergeben. Diese Parameter können optional oder obligatorisch sein.

Auf der Registerkarte Methoden der verschiedenen Controller können Sie dann für Ereignisse, die innerhalb eines anderen Controllers ausgelöst wurden, einen speziellen Ereignisbehandler anlegen (siehe Controller: Methoden).

Achtung Achtung

Bevor Sie für ein Ereignis eines Controllers einen Ereignisbehandler in einem anderen Controller anlegen können, müssen Sie sicherstellen, dass auf der Registerkarte Eigenschaften des behandelnden Controllers eine Controller-Verwendung für den das Ereignis auslösenden Controller eingetragen ist.

Ende der Warnung.

Soll ein Ereignis des Component-Controllers von einem Ereignisbehandler im Component-Controller derselben Component behandelt werden, dann muss die Registrierung von der Anwendung selbst vorgenommen werden. Dazu können Sie folgendes Coding-Stück in die WDDOINIT-Methode des Component-Controllers einfügen:

Syntax Syntax

  1. data: l_api type ref to if_wd_component.
  2. l_api = wd_this->wd_get_api( ).
  3. l_api->add_event_handler(
        LISTENER_NAME    = 'COMPONENTCONTROLLER'
        HANDLER_NAME     = <event handler name>
        CONTROLLER_NAME  = 'COMPONENTCONTROLLER'
        EVENT_NAME       = <event name> ).
Ende des Codes
Zuordnung eines Ereignisses zum Interface einer Component

Der Interface-Controller einer Component kann zwar als eigenständiges Objekt in der Workbench dargestellt, als solches jedoch nicht editiert werden. Ereignisse von Interface-Controllern werden daher innerhalb des zugehörigen Component-Controllers implementiert und über das Ankreuzfeld der Spalte Interface der Component-Schnittstelle zugeordnet.

Aktionen und Inbound-Plugs einer View

Aktionen sind Ergänzungen zu Ereignissen, die auf eine Benutzereingabe reagieren (beispielsweise auf das Drücken eines Buttons). Sie existieren ausschließlich in View-Controllern. Der zugehörige Ereignisbehandler befindet sich innerhalb des View-Controllers, in dem das Ereignis ausgelöst wurde. Er wird mit Anlegen der Aktion automatisch auf der Registerkarte Methoden angelegt. Die Aktion selbst wird auf der Registerkarte Aktionen im View Editor eingetragen (siehe View: Die Bestandteile des View-Controllers)

Da beim Aufruf einer View über einen Inbound-Plug immer zunächst der optional vorhandene zugehörige Ereignisbehandler aufgerufen wird, kann der Inbound-Plug selbst als Ereignis aufgefasst werden. Beim Einrichten eines Inbound-Plugs wird immer automatisch ein Ereignisbehandler für diesen Inbound-Plug mit angelegt. Auf der Registerkarte Methoden des View Editors wird der neue Ereignisbehandler in die Tabelle eingefügt und kann dann ausprogrammiert werden. Auch in diesem Fall findet die Ereignisbehandlung innerhalb des View-Controllers statt.

Inbound-Plugs eines Windows

Entsprechend den Inbound-Plugs einer View verhält sich auch ein Inbound-Plug eines Windows wie ein Ereignis, auf das innerhalb des eigenen Controllers mit Hilfe eines Ereignisbehandlers reagiert werden kann. Bei Anlegen eines Inbound-Plugs wird - ganz analog zur View - eine Ereignisbehandlermethode mit angelegt, die über die Registerkarte Methoden des Windows ausprogrammiert werden kann.