de.jsystems.framework.common
Interface IController

All Superinterfaces:
FrameworkKonstanten, IMessageTexte, IProgressSender
All Known Implementing Classes:
Controller

public interface IController
extends FrameworkKonstanten, IMessageTexte, IProgressSender

Dieses Interface stellt die Schnittstelle dar zwischen der BusinessView und dem Controller. Da das Framework hauptsaechlich fuer die Oberflaeche gedacht ist, ohne allzugrosse Einschraenkungen hinsichtlich des Designs zu machen ist es nicht zwingend erforderlich, dass ein MVC-Pattern benutzt wird. Deshalb wird die Oberflaeche mit der Logik ueber ein Interface gekoppelt. Eine Beispielimplementierung sind die Klassen Controller, BusinessFrameController und BusinessDialogController.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS

Field Summary
 
Fields inherited from interface de.jsystems.framework.common.FrameworkKonstanten
DEFAULT, EDITMODE, FRAMEWORK_LAF, METAL_LAF, MOTIF_LAF, NEWMODE, OHNE, ONLY_MENU, ONLY_TOOLBAR, SHOWMODE, WINDOWS_LAF
 
Fields inherited from interface de.jsystems.framework.common.IMessageTexte
FEHLER, FEHLER_AUFGETRETEN
 
Method Summary
 List getAusgewaehlteModels()
          Gibt, sofern vorhanden, die zur ausgewählten View gehörenden Models zurück.
 BusinessView getView(String name)
          Holt aus der Tabelle mit den registrierten Views die unter dem übergebenem Namen registrierte View heraus.
 void registerModel(String name, BusinessModel model)
          Registriert ein zu einer View gehörendes Model.
 void registerView(BusinessView view)
          Registriert die uebergebene View im Controller und ließt alle in der View als Actionsensitiv gekennzeichneten Komponenten aus.
 void registerViewActionControls(BusinessView view)
          Wird von der Methode registerView(BusinessView) aufgerufen.
 

Method Detail

registerModel

public void registerModel(String name,
                          BusinessModel model)
Registriert ein zu einer View gehörendes Model. Allerdings muß eine View nicht unbedingt ein Model haben. Als Name unter dem das Model registriert werden soll muß der Name der zugehörigen View angegeben werden. Zu einer View kann auch mehr als ein Model registriert werden. Die Models zu einer View koennen ueber die Methode getAusgewaehlteModels() wieder geholt werden. Falls unter dem uebergebenen Namen noch keine View registriert ist, so macht das auch nichts. Die Models koennen trotzdem registriert werden. Wenn einer der beiden Parameter NULL ist wird eine IllegalArgumentException ausgeloest.

Parameters:
name - Name der View, zu der das Model gehört.
model - Das zur View gehörende Model.

registerView

public void registerView(BusinessView view)
                  throws ViewAlreadyExistsException,
                         CreateActionException
Registriert die uebergebene View im Controller und ließt alle in der View als Actionsensitiv gekennzeichneten Komponenten aus. Damit werden dann die in den Controls hinterlegten Actionklassen mit dem Control verknuepft. Das Triggern der entsprechenden Action uebernimmt dabei der ActionManager. Die View wird mit ihrem Namen registriert (BusinessView.getViewName()). Falls es schon eine View mit diesem Namen gibt, wird die Registrierung abgewiesen und eine Exception geworfen.

Parameters:
view - Die BusinessView, die registriert werden soll.
Throws:
ViewAlreadyExistsException - wenn diese View schon einmal registriert wurde. Das Kriterium ist dabei der Name, den die Methode BusinessView.getViewName() der View zurueckgibt.
IllegalArgumentException - wenn die uebergebene View NULL ist.
CreateActionException - wenn beim erzeugen einer Action ein Fehler auftritt.
See Also:
registerViewActionControls(BusinessView)

registerViewActionControls

public void registerViewActionControls(BusinessView view)
                                throws CreateActionException
Wird von der Methode registerView(BusinessView) aufgerufen. Hier werden alle Controls der Oberflaeche durchgegangen, fuer die eine Action registriert werden soll. Dabei kann fuer ein Control durchaus auch mehr als eine Action registriert werden, je nachdem wieviele Events das Control ausloesen kann. Das Control enthaelt dabei selbst die Namen der entsprechenden Action-Klassen. Diese werden hier ausgelesen und an den ActionManager uebergeben. Damit diese noetigen Werte ausgelesen werden koennen, muessen die Controls die Frameworkspezifischen Controls sein. Das sind alle Klassen aus dem Package de.jsystems.framework.controls. Hier implementieren diese Controls das Interface IActionInterface. Bei diesem Interface handelt es sich um ein sogenanntes MarkerInterface. Damit ist dann aber festgelegt, das die Klasse Methoden enthaelt, deren Namen mit 'getActionClassFor' beginnt und die keine Parameter erwarten und einen String zurueckgeben. Beim registrieren dieser Controls werden dann diese Methoden aufgerufen und, wenn der zurueckgegebene String weder NULL noch leer ist, der ActionManager mit diesem String versorgt. Die ausgelesene Klasse wird im ActionManager erzeugt und dann als Listener am Control registriert.

Parameters:
view - Die BusinessView deren ActionControls registriert werden sollen.
Throws:
CreateActionException - wenn beim erzeugen einer Action ein Fehler auftritt.
See Also:
ActionManager.addAction(String, IActionInterface, BusinessView)

getView

public BusinessView getView(String name)
                     throws ViewNotFoundException
Holt aus der Tabelle mit den registrierten Views die unter dem übergebenem Namen registrierte View heraus. Wenn unter diesem Namen keine View vorhanden ist, wird eine Exception ausgelöst. Falls vorhanden, werden die zur View gehörende Model in einer Instanzvariablen gespeichert. Diese können dann ber die Methode getAusgewaehlteModels() ausgelesen werden. Wird als Name NULL übergeben, wird eine Exception ausgelöst. Die View wird auch in einer internen Variablen getAusgewaehlteModels() gespeichert bis zum naechsten Aufruf der Methode.

Parameters:
name - Der Name der View, die ausgelesen werden soll.
Returns:
Die unter dem uebergebenen Namen registrierte View.
Throws:
ViewNotFoundException - wenn unter dem übergebenen Namen keine View registriert ist.
IllegalArgumentException - wenn NULL als name uebergeben wird.

getAusgewaehlteModels

public List getAusgewaehlteModels()
Gibt, sofern vorhanden, die zur ausgewählten View gehörenden Models zurück. Die Models stecken in einer ArrayList. Falls zur ausgewaehlten View keine Models gehoeren, so wird NULL zurueckgegeben.

Returns:
Eine List mit allen registrierten Models zur View oder NULL, falls es keine Models gibt.
See Also:
getView(String)