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.table
Class BusinessTableModel

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

All Implemented Interfaces:
  IBusinessModelSave, IBusinessTableModel, TableModel

public class BusinessTableModel
extends BusinessModel
implements IBusinessTableModel

Model fuer die `BusinessTable`. In diesem Model werden die Daten fuer die Tabelle als `TableItem`-Objekte verwaltet. Die Standardschnittstelle fuer Tabellenmodelle (`TableModel`) wird von dieser Implementierung unterstuetzt. Damit kann das Model auch an einer ganz normalen `JTable` benutzt werden. Zusaetzlich wird auch die Schnittstelle `BusinessModel` unterstuetzt, womit die Klasse auch die Erzeugung der verwalteten Items uebernehmen kann.

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

Field Summary
`protected EventListenerList` | `listenerList` Liste für registrierte Listener

Fields inherited from class de.jsystems.framework.common.BusinessModel
`DIALOG_ABBRUCH, DIALOG_OK, file, filename, itemclass, itemList, OPEN_DIALOG, pathname, SAVE_DIALOG, saver`

Constructor Summary
`BusinessTableModel(TableItem item)` Initialisiert das Model und legt das zu verwaltende Item fest.

Method Summary
`void` | `addItem(Item item)` Diese Operation wird hier im Model nicht unterstuetzt.
`void` | `addRow()` Fügt dem Model eine neue Zeile hinzu.
`void` | `addRow(String itemId)` Fuegt dem Model eine neue Zeile hinzu.
`void` | `addRow(String itemId, String name)` Fuegt dem Model eine neue Zeile hinzu.
`void` | `addRow(TableItem item)` Fügt dem Model das uebergebene Item als neue Zeile hinzu.
`void` | `addTableModelListener(TableModelListener listener)` Fügt einen Listener der Liste aller Listener hinzu die bei einer Änderung am Model benachrichtigt werden sollen.
`Item` | `createNewItem()` Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden.
`int` | `findColumn(String columnName)` Sucht eine Spalte anhand des Namens und gibt den Index zurück, an dem sie sich befindet.
`void` | `fireTableCellUpdated(int row, int column)` Benachrichtigt alle registrierten Listener das sich der Wert der Zelle `[row, column]` ge�ndert hat.
`void` | `fireTableChanged(TableModelEvent event)` Benachrichtig alle registrierten Listener über das auftreten des übergebenen Events.
`void` | `fireTableDataChanged()` Benachrichtig alle registrierten Listener das sich alle Wert der Tabelle geändert haben.
`void` | `fireTableRowsDeleted(int firstRow, int lastRow)` Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` Zeilen gelöscht wurden.
`void` | `fireTableRowsInserted(int firstRow, int lastRow)` Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` neue Zeilen hinzugefügt wurden.
`void` | `fireTableRowsUpdated(int firstRow, int lastRow)` Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` Zeilen geändert wurden.
`void` | `fireTableStructureChanged()` Benachrichtig alle registrierten Listener das sich die Struktur der Tabelle geändert hat.
`Class` | `getColumnClass(int columnIndex)` Gibt den Typ der Daten fuer die Spalte am uebergebenen Index zurueck.
`int` | `getColumnCount()` Gibt die Anzahl Spalten im Model zurück.
`String` | `getColumnName(int column)` Gibt den Namen einer Spalte zur�ück.
`EventListener[]` | `getListeners(Class listenerTyp)` Gibt ein Array mit allen Listenern des spezifizierten Typs zurück die bei diesem Model registriert sind.
`int` | `getRowCount()` Gibt die Anzahl Zeilen im Model zurück.
`protected String` | `getTechnicalColumnName(int column)` Gibt den technischen Namen der uebergebenen Spalte zurueck.
`Object` | `getValueAt(int row, int column)` Gibt den Wert der spezifizierten Zelle zurück.
`boolean` | `isCellEditable(int row, int column)` Legt fest, ob eine Zelle Editierbar ist.
`void` | `load()` Laedt den Inhalt fuer das Model.
`void` | `removeRow(int row)` Löscht die Zeile am spezifizierten Indx aus der Tabelle.
`void` | `removeTableModelListener(TableModelListener listener)` Entfernt einen registrierten Listener aus der Liste der zu benachrichtigenden Listener.
`void` | `save()` Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank.
`void` | `setValueAt(Object value, int row, int column)` Setzt den Wert für eine Zelle.
`void` | `updateItem(Item item)` Diese Operation wird hier im Model nicht unterstuetzt.

Methods inherited from class de.jsystems.framework.common.BusinessModel
`createNewItem, createNewItem, getItem, getItemComboBox, getItemCount, getItemListBox, getSaveItem, getSaveItemCount, loadItem, preLoad, removeAllItems, removeItem, save_as, setSaver, showFileDialogBox`

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

Field Detail

### listenerList

    protected EventListenerList listenerList

  Liste für registrierte Listener

Constructor Detail

### BusinessTableModel

    public BusinessTableModel(TableItem item)

  Initialisiert das Model und legt das zu verwaltende Item fest. Das hier übergebene Item wird nur dazu benutzt, um sicherzustellen, das ein Objekt vom Typ `TableItem` übergeben wurde. Im Item brauchen keine Werte enthalten sein, da dieses Item nicht zur Datenhaltung verwendet wird. Es wird auch im Model nicht gespeichert. Es gibt also keinerlei Zugriffsmöglichkeit auf das Item. Das Item wird in einigen Methoden benutzt, um z.B. den Namen einer Spalte zu ermitteln oder den Klassentyp einer Spalte. Falls das Item unsichtbare Attribute enthaelt, so werden sie in der Tabelle beruecksichtigt.

Parameters:
  `item` - Ein Item von der Art wie sie in diesem Model verwaltet werden.

Method Detail

### createNewItem

    public Item createNewItem()
                       throws ItemInstantiateException

  Erzeugt ein neues Item von der Art, wie sie in diesem Model verwaltet werden. Das neu erzeugte Item ist noch nicht im Model enthalten. Wenn das neue Item dem Model hinzugefuegt werden soll, muss die Methode `addRow(TableItem)` aufgerufen werden. Hier wird dann die Tabelle benachrichtigt, dass sich das Model geaendert hat.

  Overrides:
    `createNewItem` in class `BusinessModel`
  Returns:
    Ein neu erzeugtes Item vom Typ `TableItem`.
  Throws:
    `ItemInstantiateException` - wenn beim erzeugen des Items ein Fehler aufgetreten ist.

### addRow

    public void addRow()
                throws ItemInstantiateException

  Fügt dem Model eine neue Zeile hinzu. Die Werte in der neuen Zeile sind alle noch `null`. Die registrierten Listener werden benachrichtigt.

  Throws:
    `ItemInstantiateException` - wenn beim erzeugen des Items ein Fehler aufgetreten ist.

### addRow

    public void addRow(String itemId)
                throws ItemInstantiateException

  Fuegt dem Model eine neue Zeile hinzu. Die Werte in der Zeile sind alle noch NULL. Der Aufrufer muss selbst dafuer sorgen, das die uebergebene ID fuer das Item eindeutig ist, da es sonst zu Problemen bei der Verwaltung der Items im Model kommen kann.

  Parameters:
    `itemId` - Eine eindeutige Id fuer das Item.
  Throws:
    `ItemInstantiateException` - wenn beim erzeugen des Items ein Fehler aufgetreten ist.

### addRow

    public void addRow(String itemId,
                       String name)
                throws ItemInstantiateException

  Fuegt dem Model eine neue Zeile hinzu. Die Werte in der Zeile sind alle noch NULL. Der Aufrufer muss selbst dafuer sorgen, das die uebergebene ID fuer das Item eindeutig ist, da es sonst zu Problemen bei der Verwaltung der Items im Model kommen kann. Zusaetzlich wird hier der Name fuer das Item gleich mit festgelegt.

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

### addRow

    public void addRow(TableItem item)

  Fügt dem Model das uebergebene Item als neue Zeile hinzu. Die registrierten Listener werden benachrichtigt. Das hier uebergebene Item muss vom gleichen Typ wie die in diesem Model verwalteten Items sein. Falls das nicht der Fall ist wird eine `IllegalArgumentException` ausgeloest.

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

### removeRow

    public void removeRow(int row)

  Löscht die Zeile am spezifizierten Indx aus der Tabelle. Die Tabelle wird benachrichtigt, das sich die Tabelle geanedert hat. Falls es diesen Index nicht gibt wird eine `ArrayIndexOutOfBoundsException` ausgelöst.

  Parameters:
    `row` - Der Index der zu loeschenden Zeile.

### save

    public void save()
              throws Exception

  Speichert den Inhalt des Models in einer bestehenden Datei oder in einer Datenbank. Die konkrete Art der Speicherung ist abhängig vom anhängenden Saver-Objekt.

  Overrides:
    `save` in class `BusinessModel`
  Throws:
    `Exception` - wenn beim Speichern ein Fehler auftritt.
  See Also:
    `Saver`, `BusinessModel.setSaver(Saver)`

### load

    public void load()
              throws Exception

  Laedt den Inhalt fuer das Model. Die konkrete Art des Ladens ist abhängig vom anhängenden Saver-Objekt.

  Overrides:
    `load` in class `BusinessModel`
  Throws:
    `Exception` - wenn ein Fehler beim Speichern Auftritt.
  See Also:
    `Saver`, `BusinessModel.setSaver(Saver)`

### getColumnName

    public String getColumnName(int column)

  Gibt den Namen einer Spalte zur�ück. Der Name richtet sich nach dem übergebenem Item. Falls sich am übergebenem Index keine Spalte befindet(column < 0 || column > column.size()) wird ein leerer String zurückgegeben. Zurueckgegeben wird immer der Display-Name aus dem Item, nicht der technische Name.

  Specified by:
    `getColumnName` in interface `TableModel`
  Parameters:
    `column` - Der Index der Spalte dessen Name ausgelesen werden soll.
  Returns:
    Der Name der Spalte am uebergebenen Index.
  See Also:
    `TableItem.getDisplayColumnName(int)`

### getTechnicalColumnName

    protected String getTechnicalColumnName(int column)

  Gibt den technischen Namen der uebergebenen Spalte zurueck. Dabei handelt es sich um den Namen des entsprechenden Attributes.

  Parameters:
    `column` - Der Index der Spalte dessen Name ausgelesen werden soll.
  Returns:
    Der technische Name der Spalte.
  See Also:
    `TableItem.getTechnicalColumnName(int)`

### findColumn

    public int findColumn(String columnName)

  Sucht eine Spalte anhand des Namens und gibt den Index zurück, an dem sie sich befindet. Falls die Spalte nicht gefunden wird, wird -1 zurückgegeben.

  Parameters:
    `columnName` - Der Name der Spalte deren Index gesucht wird.
  Returns:
    Der Index der Spalte oder -1, wenn es unter diesemNamen keine Spalte gibt.
  See Also:
    `TableItem.findColumn(String)`

### getColumnClass

    public Class getColumnClass(int columnIndex)

  Gibt den Typ der Daten fuer die Spalte am uebergebenen Index zurueck.

  Specified by:
    `getColumnClass` in interface `TableModel`
  Parameters:
    `columnIndex` - Der Index der Spalte deren Spaltentyp zurueckgegeben werden soll.
  Returns:
    Der Typ der Daten in der Spalte.
  See Also:
    `TableItem.getColumnClass(int)`

### isCellEditable

    public boolean isCellEditable(int row,
                                  int column)

  Legt fest, ob eine Zelle Editierbar ist. Da im Framework das Editieren einer Tabelle über einen Dialog stattfindet wird hier standardmäßig `false` zurückgegeben. Ob eine Zelle dann wirklich nicht editiert werden kann ist dann abhängig von den Eigenschaften des entsprechendenen Attributes im TableItem.

  Specified by:
    `isCellEditable` in interface `TableModel`
  Parameters:
    `row` - Die Zeile in der sich die Zelle befindet.
    `column` - Die Spalte in der sich die Zelle befindet.
  Returns:
    Hier immer `false`.
  See Also:
    `Item.registerAttribute(String, BitSet)`

### setValueAt

    public void setValueAt(Object value,
                           int row,
                           int column)

  Setzt den Wert für eine Zelle. Wenn hierbei ein Fehler auftritt wird eine `TableValueException` ausgeloest.

  Specified by:
    `setValueAt` in interface `TableModel`
  Parameters:
    `value` - Der neue Wert für die Zelle
    `row` - Die Zeile in der sich die Zelle befindet.
    `column` - Die Spalte in der sich die Zelle befindet.

### getValueAt

    public Object getValueAt(int row,
                             int column)

  Gibt den Wert der spezifizierten Zelle zurück. Wenn hierbei ein Fehler auftritt wird eine `TableValueException` ausgeloest.

  Specified by:
    `getValueAt` in interface `TableModel`
  Parameters:
    `row` - Die Zeile der spezifizierten Zelle.
    `column` - Die Spalte der spezifizierten Zelle.
  Returns:
    Der Wert in der Zelle.

### getRowCount

    public int getRowCount()

  Gibt die Anzahl Zeilen im Model zurück. Die Anzahl Zeilen entspricht hier der Anzahl gespeicherter Items im Model.

  Specified by:
    `getRowCount` in interface `TableModel`
  Returns:
    Die Anzahl Zeilen im Model.

### getColumnCount

    public int getColumnCount()

  Gibt die Anzahl Spalten im Model zurück. Diese Anzahl entspricht der Anzahl Attribute im Item.

  Specified by:
    `getColumnCount` in interface `TableModel`
  Returns:
    Die Anzahl Spalten im Model.

### addTableModelListener

    public void addTableModelListener(TableModelListener listener)

  Fügt einen Listener der Liste aller Listener hinzu die bei einer Änderung am Model benachrichtigt werden sollen.

  Specified by:
    `addTableModelListener` in interface `TableModel`
  Parameters:
    `listener` - Ein TableModelListener der ueber Aenderungen am Model informiert werden moechte.

### removeTableModelListener

    public void removeTableModelListener(TableModelListener listener)

  Entfernt einen registrierten Listener aus der Liste der zu benachrichtigenden Listener.

  Specified by:
    `removeTableModelListener` in interface `TableModel`
  Parameters:
    `listener` - Der aus der Liste der TableModelListener zu entfernende TableModelListener

### fireTableDataChanged

    public void fireTableDataChanged()

  Benachrichtig alle registrierten Listener das sich alle Wert der Tabelle geändert haben. Auch die Anzahl an Zeilen kann sich geändert haben und die `JTable` wird sich komplett neu zeichnen. Die Struktur der Tabelle(Reihenfolge der Spalten) bleibt dabei erhalten.

  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableStructureChanged

    public void fireTableStructureChanged()

  Benachrichtig alle registrierten Listener das sich die Struktur der Tabelle geändert hat. Die Anzahl Spalten in der Tabelle und die Namen und Typen der neuen Spalten können verschieden sein gegenüber dem vorherigen Zustand. Wenn die `JTable` dieses Event erhält und das Flag `JTable.autoCreateColumnsFromModel` ist gesetzt, werden alle Spalten aus der Tabelle entfernt und neu aus dem Model geholt. Das geschieht in der Reihenfolge in der die Spalten im Model vorhanden sind. Das ist das gleiche Verhalten als würde die Methode `JTable.setModel(javax.swing.table.TableModel)` an der `JTable` aufgerufen.

  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableRowsInserted

    public void fireTableRowsInserted(int firstRow,
                                      int lastRow)

  Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` neue Zeilen hinzugefügt wurden. Der angegebene Bereich ist inklusiv.

  Parameters:
    `firstRow` - Index der ersten hinzugefügten Zeile.
    `lastRow` - Index der letzten hinzugefügten Zeile.
  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableRowsUpdated

    public void fireTableRowsUpdated(int firstRow,
                                     int lastRow)

  Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` Zeilen geändert wurden. Der angegebene Bereich ist inklusiv.

  Parameters:
    `firstRow` - Index der ersten geänderten Zeile.
    `lastRow` - Index der letzten geänderten Zeile.
  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableRowsDeleted

    public void fireTableRowsDeleted(int firstRow,
                                     int lastRow)

  Benachrichtig alle registrierten Listener das im Bereich `[firstRow, lastRow]` Zeilen gelöscht wurden. Der angegebene Bereich ist inklusiv.

  Parameters:
    `firstRow` - Index der ersten gelöschten Zeile.
    `lastRow` - Index der letzten gelöschten Zeile.
  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableCellUpdated

    public void fireTableCellUpdated(int row,
                                     int column)

  Benachrichtigt alle registrierten Listener das sich der Wert der Zelle `[row, column]` ge�ndert hat.

  Parameters:
    `row` - Die Zeile in der sich die geänderte Zelle befindet.
    `column` - Die Spalte in der sich die geänderte Zelle befindet.
  See Also:
    `TableModelEvent`, `EventListenerList`

### fireTableChanged

    public void fireTableChanged(TableModelEvent event)

  Benachrichtig alle registrierten Listener über das auftreten des übergebenen Events.

  Parameters:
    `event` - Das ausgelöste Event das abgeschickt werden soll.
  See Also:
    `addTableModelListener(TableModelListener)`, `TableModelEvent`, `EventListenerList`

### getListeners

    public EventListener[] getListeners(Class listenerTyp)

  Gibt ein Array mit allen Listenern des spezifizierten Typs zurück die bei diesem Model registriert sind.

  Parameters:
    `listenerTyp` - Der Typ des Listeners
  Returns:
    Alle registrierten Listener vom Typ `listenerTyp`

### addItem

    public void addItem(Item item)

  Diese Operation wird hier im Model nicht unterstuetzt. Neue Zeilen muessen ueber die Methoden
  - `addRow()`
  - `addRow(String)`
  - `addRow(String, String)`
  - `addRow(TableItem)`
    hinzugefuegt werden. Bei Aufruf dieser Methode wird eine `UnsupportedOperationException` ausgeloest.

  Overrides:
    `addItem` in class `BusinessModel`
  Parameters:
    `item` - Das dem Model hinzuzufuegende Item.

### updateItem

    public void updateItem(Item item)

  Diese Operation wird hier im Model nicht unterstuetzt. Um Daten in der Tabelle zu aendern wird das betreffende Item ueber die Methode `BusinessModel.getItem(int)` ausgelesen und dann die gewuenschten Attribute geaendert. Bei Aufruf dieser Methode wird eine `UnsupportedOperationException` ausgeloest.

  Overrides:
    `updateItem` in class `BusinessModel`
  Parameters:
    `item` - Das Item, das im Model geaendert werden soll.
  See Also:
    `Item.getItemID()`

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