
Component-Controller
Der Component-Controller stellt Daten und Verarbeitungslogik zur Verfügung, die für alle Views einer Component sicht- bzw. änderbar sein sollen. Er besitzt drei Interfaces:
Innerhalb der Component ist zu jedem belieben Context-Element des Component-Controllers ein Mapping möglich.
Die Attribute eines Component-Controllers sind allen Methoden, die innerhalb einer Component gerufen werden, bekannt und können von allen genutzt werden, sofern sie die Eigenschaft Public besitzen. Andernfalls ist ihre Sichtbarkeit auf den Component-Controller beschränkt. Ereignisse und Methoden, die dem Component-Controller zugeordnet sind, sind Component-weit sichtbar. So kann z.B. eine beliebige Aktion einer View der Component eine solche Methode des Component-Controllers rufen.
Die Sichtbarkeit einer speziell markierten Anzahl der Methoden, Ereignisse und Context-Knoten eines Component-Controllers kann über die Grenze der eigenen Component hinaus erweitert werden. Sie bilden dann zusammen den Interface-Controller der Component.
Interface-Controller
Der Interface-Controller dient zur Component-übergreifenden Kommunikation. Er definiert den Controller-Teil derSchnittstelle einer Web-Dynpro-Component. Er selbst enthält keine Implementierung:
Zu jedem Interface-Controller gibt es ein zugehöriges ABAP-Interface IWCI_<Component-Name> bzw. IWCI_<Comp.Interf.Def-Name>. Über die Programmierung mit Hilfe von Component-Interface-Definitionen finden Sie Informationen im Kapitel Arbeiten mit Component-Interface-Definitionen.
Interface-Controller einer Component
Ereignisse, Methoden und Context-Knoten des Component-Controllers können für andere Components sichtbar gemacht werden indem sie durch Setzen des Ankreuzfeldes Interface der Schnittstelle der Component zugewiesen werden. Damit werden sie auch in das zugehörige ABAP-Interface IWCI_<Component-Name> aufgenommen.
Für Elemente des Contextes eines Controllers aus einer anderen Component kann daher auch ein Mapping auf die der Component-Schnittstelle zugewiesenen Elemente des Component-Controller-Contextes definiert werden.
Der Interface-Controller wird in der Objekt-Liste der ABAP Workbench als separates Objekt der zugehörigen Web-Dynpro-Component angezeigt. Der Interface-Controller einer Component wird jedoch als Teil des Component-Controllers implementiert und editiert.
Interface-Controller eines Component-Interfaces
Nur dann, wenn ein Interface-Controller Bestandteil eines Component-Interfaces ist, ist der Controller-Editor änderungsbereit und der Context, die Ereignisse und Methoden können direkt implementiert und editiert werden.
Das globale Interface IWCI_<Comp.Interface-Name > ist in der Klassenbibliothek abgelegt und kann in der SE24 angezeigt werden.
Custom-Controller
Die Eigenschaften und die Verwendung des optional hinzufügbaren Custom-Controllers entsprechen genau denen des Component-Controllers. Das heißt, er ist für alle Elemente der Component sichtbar und die Lebensdauer der Elemente erstreckt sich über die Lebensdauer der Component. Der Custom-Controller bietet Ihnen die Möglichkeit, Funktionen und Daten innerhalb einer Component zu strukturieren. Es ist sinnvoll, einen Custom-Controller anzulegen und zu pflegen, wenn ein bestimmtes Subset von Views einer Component mit einer speziellen Funktion bzw. mit einem speziellen Set von Daten ausgestattet werden soll.
View-Controller
Der View-Controller beinhaltet, genau wie der Component-Controller, Daten und Funktionen. Allerdings verfügt der View-Controller ausschließlich über ein Interface IF_<Controllername>, das heisst diese Daten und Funktionen sind ausschließlich innerhalb der eigenen View sichtbar.
Die Lebensdauer der Controller-Elemente einer View beschränkt sich auf die Lebensdauer der View. Für die Erstellung einfacher Web-Dynpro-Anwendungen ist es ausreichend, den Component-Controller sowie die View-Controller einer Component zu pflegen. Die beiden im Folgenden beschriebenen Controller sind optional und helfen Ihnen, kompliziertere Components und Anwendungen besser zu strukturieren und die Wiederverwendbarkeit zu erleichtern.
Window-Controller
Zu jedem in einer Web-Dynpro-Component angelegten Window wird auch ein Window-Controller erzeugt. Diese Window-Controller ist Component-weit sichbar, verhält sich also wie ein Component- bzw. Custom-Controller.