Standard-Web-Controllers-Package

Wenn man die Abfolge der Seiten einer webbasierten Benutzeroberfläche für einen Geschäftsfall mit den Seitenabfolgen für andere Geschäftsfälle vergleicht, dann stellt man fest, das sich Seitenabfolgen in wenige, oft vorkommende Kategorien einteilen lassen.

Das Standard-Web-Controllers-Package bietet für diese Kategorien generische Controller an und ist eine Erweiterung des Web-Controller-Package.


AuthenticateController

Der AuthenticateController ist für die Unterstützung von Login-Geschäftsfällen gedacht. Im Zustand Enter wir die Login-Maske angezeigt. Beim Absenden des Formulars werden die eingegebenen Informationen von der DataAccess.authenticate Methode überprüft. Abhängig vom Ausgang der Überprüfung erreicht der Controller einen der Zustände Ok bzw. Error.


DeleteController

Der DeleteController dient dem Löschen von Datensätzen. Der zu löschende Datensatz wird im Zustand Confirm angezeigt, wobei der Inhalt des Datensatzes von der Methode DataAccess.read ermittelt wird. Bestätigt der Benutzer den Löschvorgang, wird der Datensatz mit der Methode DataAccess.delete gelöscht. Ist das Löschen erfolgreich, erreicht der Controller den Zustand Ok, anderenfalls den Zustand Error.


InsertController

Mit dem InsertController können Datensätze angelegt werden. Im Zustand Enter wird das dazu notwendige Formular angezeigt. Sendet der Benutzer den Inhalt des Formulars ab, wird mit der Methode DataAccess.verify überprüft, ob die eingegebenen Daten valide sind. Im Erfolgsfall wird mit der Methode DataAccess.find geprüft, ob der gleiche Datensatz bereits vorhanden ist. Sind beide Tests erfolgreich, gerät der Controller in den Zustand Confirm, anderenfalls in den Zustand Error. Im Zustand Confirm werden dem Benutzer die eingegebenen Daten zur Bestätigung nochmals angezeigt. Der Benutzer kann in den Zustand Enter wechseln, falls er die Daten nochmals korrigieren will. Ansonsten wird der Datensatz mit Hilfe der Methode DataAccess.insert eingefügt und der Controller gelangt in den Zustand Ok. Falls das Einfügen fehlschlägt, wird in den Zustand Error gewechselt.


UpdateController

Der UpdateController dient dem Ändern von Datensätzen. Im Zustand Enter wird der Datensatz angezeigt. sein Inhalt wird mit der Methode DataAccess.read ermittelt. Der Benutzer kann die Daten ändern und absenden. Mit der Methode DataAccess.verify wird die Validität der Daten überprüft. Sind die Daten valide, erreicht der Controller den Zustand Confirm, anderenfalls den Zustand Error. Im Zustand Confirm werden die Daten nochmals angezeigt. Die Funktionsweise ist analog zum InsertController. Will der Benutzer die Daten nochmals überarbeiten, gelangt der Controller in den Zustand Change.


WorkListController

Der WorkListController dient der Bearbeitung von Aufgaben, die in einer ToDo-Liste (Work List) vorliegen. Die Work List wird im Zustand Query angezeigt, sie wird mit der Methode DataAccess.query ermittelt. Wählt der Benutzer ein ToDo (Work Item) aus, gelangt der Controller in den Zustand Assigned. Tritt bei der Auswahl ein Fehler auf, wird in den Zustand Error gewechselt. Im Zustand Assigned kann der Benutzer Eingaben tätigen. Die Eingaben werden mit der Methode WorkItemType.verify überprüft. Sind die Eingaben nicht valide, kann der Benutzer sie im Zustand Error (ItemType) überarbeiten. Sind die Eingaben korrekt, werden sie im Zustand Confirm nochmals ausgegeben. Bestätigt der Benutzer die Eingaben, wird das ToDo durch den Aufruf der Methode WorkItemType.commit abgeschlossen und in den Zustand Ok gewechselt.

Die Besonderheit des Controllers liegt darin, dass unterschiedliche Arten von ToDos durch verschiedene Subklassen von WorkItemType repräsentiert werden. Jede Subklasse von WorkItemType hat einen anderen Satz von Zuständen Assigned, Confirm und Error (ItemType), so dass unterschiedliche HTML Dokumentenvorlagen verwendet werden können.


Quelltexte

Die Quelltexte unterliegen der Modified Artistic License v1 und finden sich in der Version v3 in der unten verlinkten Jar-Datei mit dem Namen standardwebcontrollerssrc.jar.

Zusätzlich werden noch das Collections-Package, das Html-Package, das Http-Package, das Web-Controller-Package und das Threads-Package benötigt.


standardwebcontrollerssrc.jar

Anlage

Abbildung 1: Zustandsübergänge des AuthenticateControllers.

Anlage

Abbildung 2: Zustandsübergänge des DeleteControllers.

Anlage

Abbildung 4: Zustandsübergänge des UpdateControllers.

Anlage

Abbildung 3: Zustandsübergänge des InsertControllers.

Anlage

Abbildung 5: Zustandsübergänge des WorkListControllers.