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
Class BusinessModel

    java.lang.Object
      de.jsystems.framework.common.BusinessModel

All Implemented Interfaces:
  IBusinessModelSave

Direct Known Subclasses:
  BusinessTableModel, BusinessTreeModel

public class BusinessModel
extends Object
implements IBusinessModelSave

In diesem Model werden alle Daten, die in einer View angezeigt werden sollen verwaltet. Mit Hilfe der zugehörigen Controller werden die Daten aus dem Model in der zugehörigen View angezeigt bzw. aus der View gelesen und im Model abgespeichert. Das abspeichern der Daten passiert hier immer mit Objekten vom Typ `Item`. Dabei koennen im Model immer nur Objekte vom gleichen Typ verwaltet werden. Dieser Typ wird im Konstruktor des Models festgelegt.

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

Field Summary
`protected static int` | `DIALOG_ABBRUCH` Dialog wurde mit ABBRECHEN beendet
`protected static int` | `DIALOG_OK` Dialog wurde mit OK beendet
`protected File` | `file` File-Objekt mit der ausgewählten Datei.
`protected String` | `filename` Name der Datei, in die/aus der geschrieben/gelesen werden soll.
`protected Class` | `itemclass` Klasse des Items, das von diesem Modell verwaltet wird.
`protected List` | `itemList` Vector für die zu speichernden Items.
`protected static int` | `OPEN_DIALOG` Load-Dialog anzeigen
`protected String` | `pathname` Pfad der Datei.
`protected static int` | `SAVE_DIALOG` Save-Dialog anzeigen
`protected Saver` | `saver` Hilfsobjekt zum speichern eines Models

Constructor Summary
`BusinessModel(Class itemclass)` Erzeugt ein neues Model fuer Objekte vom Typ der uebergebenen Klasse.

Method Summary
`void` | `addItem(Item item)` Fügt der Liste ein neues Item hinzu.
`Item` | `createNewItem()` Erzeugt ein Item von der Art, wie sie in diesem Model verwaltet werden.
`Item` | `createNewItem(String itemId)` Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden.
`Item` | `createNewItem(String itemId, String name)` Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden.
`Item` | `getItem(int index)` Gibt das mit dem Index spezifizierte Item zurück.
`ComboBoxModel` | `getItemComboBox()` Gibt die Einträge aus dem Model so wieder, das sie in einer ComboBox angezeigt werden können.
`int` | `getItemCount()` Gibt die Anzahl der items in diesem Model zurück.
`ListModel` | `getItemListBox()` Gibt die Einträge aus dem Vector so wieder, das sie in einer ListBox angezeigt werden können.
`Item` | `getSaveItem(int index)` Holt das zu speichernde Item aus dem Model.
`int` | `getSaveItemCount()` Holt die Anzahl zu speichernder Items aus dem Model.
`void` | `load()` Laedt den Inhalt einer bestehenden Datei oder Datenbank oder... in das Model.
`void` | `loadItem(Item item)` Das übergebene Item wird im Model wieder gespeichert.
`void` | `preLoad()` Aus dem Model werden vor dem neu Laden alle Items gelöscht.
`void` | `removeAllItems()` Löscht alle Items aus dem Model.
`void` | `removeItem(Item item)` Löscht das übergebene Item aus der Liste.
`void` | `save_as()` Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank oder....
`void` | `save()` Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank oder....
`void` | `setSaver(Saver saver)` Setzt das Speicherobjekt, um den Inhalt des Models in beliebiger Art zu speichern.
`protected int` | `showFileDialogBox(int mode)` Sollte von den abgeleiteten Klassen in den Methoden `load save save_as` aufgerufen werden.
`void` | `updateItem(Item item)` Ändert das übergebene Item, indem anhand des uniqueKey-Attributes der Klasse Item das alte gelöscht und das neue an der gleichen Stelle eingefügt wird.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SAVE_DIALOG

    protected static final int SAVE_DIALOG

  Save-Dialog anzeigen

  See Also:
    Constant Field Values

### OPEN_DIALOG

    protected static final int OPEN_DIALOG

  Load-Dialog anzeigen

  See Also:
    Constant Field Values

### DIALOG_OK

    protected static final int DIALOG_OK

  Dialog wurde mit OK beendet

  See Also:
    Constant Field Values

### DIALOG_ABBRUCH

    protected static final int DIALOG_ABBRUCH

  Dialog wurde mit ABBRECHEN beendet

  See Also:
    Constant Field Values

### itemList

    protected List itemList

  Vector für die zu speichernden Items.

### filename

    protected String filename

  Name der Datei, in die/aus der geschrieben/gelesen werden soll.

### pathname

    protected String pathname

  Pfad der Datei.

### file

    protected File file

  File-Objekt mit der ausgewählten Datei.

### saver

    protected Saver saver

  Hilfsobjekt zum speichern eines Models

### itemclass

    protected Class itemclass

  Klasse des Items, das von diesem Modell verwaltet wird.

Constructor Detail

### BusinessModel

    public BusinessModel(Class itemclass)

  Erzeugt ein neues Model fuer Objekte vom Typ der uebergebenen Klasse. Der Parameter darf nicht `NULL` sein. Wenn doch, wird eine `IllegalArgumentException` ausgeloest.

Parameters:
  `itemclass` - Der Typ der Objekte die in diesem Model verwaltet werden sollen.

Method Detail

### createNewItem

    public Item createNewItem()
                       throws ItemInstantiateException

  Erzeugt ein Item von der Art, wie sie in diesem Model verwaltet werden. Dabei ist es zwingend erforderlich, dass das Item einen Parameterlosen Konstruktor besitzt. Andernfalls kommt es zu einer `ItemInstantiateException`.

  Returns:
    Ein neues Item.
  Throws:
    `ItemInstantiateException` - wenn ein Fehler beim erzeugen eines Items auftritt.

### createNewItem

    public Item createNewItem(String itemId)
                       throws ItemInstantiateException

  Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden. Dabei bekommt das Item die uebergebene ID. Der Aufrufer muss selbst dafuer sorgen, das diese ID eindeutig ist, da es sonst zu Problemen bei der Verwaltung des Items im Model kommen kann. Hierbei ist es zwingend erforderlich, dass das zu erzeugende Item einen Konstruktor mit dem Parameter `String` hat. Andernfalls kommt es hier zu einer `ItemInstantiateException`.

  Specified by:
    `createNewItem` in interface `IBusinessModelSave`
  Parameters:
    `itemId` - Eine eindeutige Id fuer das Item.
  Returns:
    Ein neues Item.
  Throws:
    `ItemInstantiateException` - wenn beim erzeugen des Items ein Fehler auftritt.

### createNewItem

    public Item createNewItem(String itemId,
                              String name)
                       throws ItemInstantiateException

  Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden. Dabei bekommt das Item die uebergebene ID. Der Aufrufer muss selbst dafuer sorgen, das diese ID eindeutig ist, da es sonst zu Problemen bei der Verwaltung des Items im Model kommen kann. Zusaetzlich wird der Name des Items gesetzt. Hierbei ist es zwingend erforderlich, dass das zu erzeugende Item einen Konstruktor mit dem Parameter `String, String` hat. Andernfalls kommt es hier zu einer `ItemInstantiateException`.

  Parameters:
    `itemId` - Eine eindeutige Id fuer das Item.
    `name` - Der Name des Items.
  Returns:
    Ein neues Item.
  Throws:
    `ItemInstantiateException` - wenn beim erzeugen des Items ein Fehler auftritt.

### setSaver

    public void setSaver(Saver saver)

  Setzt das Speicherobjekt, um den Inhalt des Models in beliebiger Art zu speichern.

  Parameters:
    `saver` - Das Saver-Objekt zum speichern des Models.

### getItem

    public Item getItem(int index)

  Gibt das mit dem Index spezifizierte Item zurück. Falls es am uebergebenen Index kein Item gibt im Modell wird `NULL` zurueckgegeben.

  Parameters:
    `index` - Der Index des auszulesenden Items.
  Returns:
    das Item am uebergebenen Index oder `NULL`.

### getItemCount

    public int getItemCount()

  Gibt die Anzahl der items in diesem Model zurück.

  Returns:
    Die Anzahl Items im Model.

### updateItem

    public void updateItem(Item item)

  Ändert das übergebene Item, indem anhand des uniqueKey-Attributes der Klasse Item das alte gelöscht und das neue an der gleichen Stelle eingefügt wird.

  Parameters:
    `item` - Das auszutauschende Item im Model.
  See Also:
    `Item.getItemID()`

### removeItem

    public void removeItem(Item item)

  Löscht das übergebene Item aus der Liste. Als Suchkriterum wird der UniqueKey des Items genommen. Falls das uebergebene Item `NULL` ist passiert nichts weiter.

  Parameters:
    `item` - Das zu loeschende Item.
  See Also:
    `Item.getItemID()`

### removeAllItems

    public void removeAllItems()

  Löscht alle Items aus dem Model.

### addItem

    public void addItem(Item item)

  Fügt der Liste ein neues Item hinzu. Dabei darf es im Model nicht schon ein Item mit der gleichen ID wie das uebergebene Item geben. Falls es schon ein Item mit dieser ID im Model gibt, so passiert nichts weiter. Schliesslich ist damit das Item eigentlich schon im Model enthalten. Um ein bestehendes Item im Model zu aendern ist die Methode `updateItem(Item)` aufzurufen. Wenn das uebergebene Item NULL ist passiert nichts.

  Parameters:
    `item` - Das dem Model hinzuzufuegende Item.

### save

    public void save()
              throws Exception

  Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank oder.... Die konkrete Art der Speicherung ist abhängig vom anhängenden Saver-Objekt. Falls noch nie gespeichert wurde, wird eine Dateiauswahldialogbox angezeigt. Dann wird die Methode `Saver.save()` im Saver-Objekt aufgerufen. Wenn kein Saver-Objekt im Model gesetzt ist oder keine Daten im Model vorhanden sind passiert nichts.

  Throws:
    `Exception` - wenn beim Speichern ein Fehler aufgetreten ist.
  See Also:
    `setSaver(de.jsystems.framework.common.saver.Saver)`, `showFileDialogBox(int)`

### save_as

    public void save_as()
                 throws Exception

  Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank oder.... Die konkrete Art der Speicherung ist abhängig vom anhängenden Saver-Objekt. Zur Auswahl des Dateinamens und des Pfades wird eine Dateidialogbox angezeigt. Dann wird die Methode `Saver.save()` im Saver-Objekt aufgerufen. Wenn kein Saver-Objekt im Model gesetzt ist oder keine Daten im Model vorhanden sind passiert nichts.

  Throws:
    `Exception` - wenn beim speichern ein Fehler auftritt.
  See Also:
    `setSaver(de.jsystems.framework.common.saver.Saver)`, `showFileDialogBox(int)`

### load

    public void load()
              throws Exception

  Laedt den Inhalt einer bestehenden Datei oder Datenbank oder... in das Model. Von wo konkret geladen wird ist abhaengig vom anhaengenden Saver-Objekt. Zum auswählen der gewünschten Datei wird ein Dateidialogbox angezeigt. Dann wird die Methode `Saver.load()` im Saver-Objekt aufgerufen. Wenn kein Saver-Objekt im Model gesetzt ist passiert nichts.

  Throws:
    `Exception` - wenn beim laden ein Fehler auftritt.
  See Also:
    `setSaver(de.jsystems.framework.common.saver.Saver)`, `showFileDialogBox(int)`

### getItemComboBox

    public ComboBoxModel getItemComboBox()

  Gibt die Einträge aus dem Model so wieder, das sie in einer ComboBox angezeigt werden können. Dazu wird ein DefaulComboBoxModel mit den Daten gefüllt. Hierbei wird dann fuer jeden Eintrag in der ComboBox-Liste die Methode toString() des Items aufgerufen.

  Returns:
    Ein ComboBoxModel mit den Daten des Models.

### getItemListBox

    public ListModel getItemListBox()

  Gibt die Einträge aus dem Vector so wieder, das sie in einer ListBox angezeigt werden können. Dazu wird ein DefaultListModel mit den Daten gefüllt. Hierbei wird dann fuer jeden Eintrag in der Liste die Methode toString() des Items aufgerufen.

  Returns:
    Ein ListModel mit den Daten des Models.

### showFileDialogBox

    protected int showFileDialogBox(int mode)

  Sollte von den abgeleiteten Klassen in den Methoden
  `
  - load
  - save
  - save_as
  `
  aufgerufen werden. Nachdem in der angezeigen Dialogbox eine Datei ausgewählt wurde bzw. ein neuer Dateiname angelegt wurde, sind die Attribute `file`, `filename` und `pathname` gefüllt mit den gewaehlten Werten. Diese koennen dann zum Beispiel im gesetzten Saver-Objekt gesetzt werden.

  Parameters:
    `mode` - Der Modus des Dateiauswahldialoges(SAVE oder LOAD).
  Returns:
    DIALOG_OK, wenn der Dialog nicht abgebrochen wurde. Die Properties file, filename und filepath sind gefüllt. DIALOG_ABBRUCH, wenn der Dialog abgebrochen wurde. Die Properties file, filename und filepath sind gelöscht(NULL bzw. Leerstring).

### getSaveItemCount

    public int getSaveItemCount()

  Holt die Anzahl zu speichernder Items aus dem Model.

  Specified by:
    `getSaveItemCount` in interface `IBusinessModelSave`
  Returns:
    Die Anzahl zu speichernder Items im Model.

### getSaveItem

    public Item getSaveItem(int index)

  Holt das zu speichernde Item aus dem Model.

  Specified by:
    `getSaveItem` in interface `IBusinessModelSave`
  Parameters:
    `index` - Der Index des zu speichernden Items.
  Returns:
    Das Item am spezifizierten Index.

### loadItem

    public void loadItem(Item item)

  Das übergebene Item wird im Model wieder gespeichert.

  Specified by:
    `loadItem` in interface `IBusinessModelSave`
  Parameters:
    `item` - Das dem Model hinzuzufügendes Item.

### preLoad

    public void preLoad()

  Aus dem Model werden vor dem neu Laden alle Items gelöscht. Sonst wären alte und neue Items gemischt vorhanden. Diese Methode sollte von den Saver-Implementierungen vor dem Laden immer aufgerufen werden um zu verhindern, das alte und neue Daten gleichzeitig im Model vorhanden sind.

  Specified by:
    `preLoad` in interface `IBusinessModelSave`

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