Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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)`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD