de.bielefeld.umweltamt.aui.utils
Class ListTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by de.bielefeld.umweltamt.aui.utils.BasicTableModel
          extended by de.bielefeld.umweltamt.aui.utils.ListTableModel
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel
Direct Known Subclasses:
EditableListTableModel

public abstract class ListTableModel
extends BasicTableModel

Eine TableModel-Grundlage, basierend auf einer java.util.Liste . Jede Zeile der Tabelle ist ein Objekt in der Liste.

Author:
David Klotz
See Also:
Serialized Form

Field Summary
 
Fields inherited from class de.bielefeld.umweltamt.aui.utils.BasicTableModel
columns
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
ListTableModel(java.lang.String[] columns, boolean updateAtInit)
          Erzeugt eine neue TableModel-Grundlage.
ListTableModel(java.lang.String[] columns, boolean updateAtInit, boolean removeAllowed)
          Erzeugt eine neue TableModel-Grundlage, bei der auch Zeilen gelöscht werden können.
ListTableModel(java.lang.String[] columns, java.util.List liste, boolean removeAllowed)
          Erzeugt eine neue TableModel-Grundlage mit einer gegebenen Liste.
 
Method Summary
abstract  java.lang.Object getColumnValue(java.lang.Object objectAtRow, int columnIndex)
          Liefert den Inhalt einer Spalte zu einem Objekt aus einer Zeile.
 java.util.List getList()
           
 java.lang.Object getObjectAtRow(int rowIndex)
          Liefert das Objekt in einer bestimmten Zeile dieser Tabelle.
 int getRowCount()
          Liefert die Anzahl der Zeilen in dieser Tabelle.
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
          Liefert das Objekt in einer bestimmten Zelle dieser Tabelle.
 boolean objectRemoved(java.lang.Object objectAtRow)
          Wird aufgerufen, wenn objectAtRow aus der Tabelle gelöscht wurde.
 boolean removeRow(int rowIndex)
          Löscht eine Zeile der Tabelle, falls das erlaubt und implementiert ist.
 boolean rowExists(int rowIndex)
          überprüft, ob eine bestimmte Zeile noch innerhalb der bestehenden Liste liegt.
 void setList(java.util.List newList)
          Setzt die Liste mit dem Tabellen-Inhalt.
abstract  void updateList()
          Füllt die Liste mit (neuem) Inhalt.
 
Methods inherited from class de.bielefeld.umweltamt.aui.utils.BasicTableModel
getColumnCount, getColumnName
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getColumnClass, getListeners, getTableModelListeners, isCellEditable, removeTableModelListener, setValueAt
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ListTableModel

public ListTableModel(java.lang.String[] columns,
                      boolean updateAtInit)
Erzeugt eine neue TableModel-Grundlage.

Parameters:
columns - Ein String-Array mit den Namen der Spalten der Tabelle
updateAtInit - Soll die Liste gleich geupdatet werden?

ListTableModel

public ListTableModel(java.lang.String[] columns,
                      boolean updateAtInit,
                      boolean removeAllowed)
Erzeugt eine neue TableModel-Grundlage, bei der auch Zeilen gelöscht werden können.

Parameters:
columns - Ein String-Array mit den Namen der Spalten der Tabelle
updateAtInit - Soll die Liste gleich geupdatet werden?
removeAllowed - Dürfen Zeilen gelöscht werden?

ListTableModel

public ListTableModel(java.lang.String[] columns,
                      java.util.List liste,
                      boolean removeAllowed)
Erzeugt eine neue TableModel-Grundlage mit einer gegebenen Liste.

Parameters:
columns - Ein String-Array mit den Namen der Spalten der Tabelle
liste - Die anfängliche Liste
Method Detail

getRowCount

public int getRowCount()
Liefert die Anzahl der Zeilen in dieser Tabelle.

See Also:
TableModel.getRowCount()

getObjectAtRow

public java.lang.Object getObjectAtRow(int rowIndex)
Liefert das Objekt in einer bestimmten Zeile dieser Tabelle.

Parameters:
rowIndex - Die Tabellen-Zeile
Returns:
Das Objekt an Stelle rowIndex der Liste

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)
Liefert das Objekt in einer bestimmten Zelle dieser Tabelle.

Parameters:
rowIndex - Die Tabellen-Zeile
columnIndex - Die Tabelle-Spalte
Returns:
Das Objekt in der Zelle (rowIndex, columnIndex) der Liste oder null, falls es die Zeile oder Spalte nicht gibt

rowExists

public boolean rowExists(int rowIndex)
überprüft, ob eine bestimmte Zeile noch innerhalb der bestehenden Liste liegt.

Parameters:
rowIndex - Die Zeile
Returns:
true, wenn rowIndex > 0 und < Liste.size() ist, sonst false

removeRow

public boolean removeRow(int rowIndex)
Löscht eine Zeile der Tabelle, falls das erlaubt und implementiert ist.

Parameters:
rowIndex - Die Zeile
Returns:
true, wenn wirklich gelöscht wurde, false, falls dabei ein Fehler auftrat oder es aus anderen Gründen nicht möglich war

getList

public java.util.List getList()
Returns:
Die Liste mit dem Tabellen-Inhalt.

setList

public void setList(java.util.List newList)
Setzt die Liste mit dem Tabellen-Inhalt.

Parameters:
newList - Die neue Liste

objectRemoved

public boolean objectRemoved(java.lang.Object objectAtRow)
Wird aufgerufen, wenn objectAtRow aus der Tabelle gelöscht wurde. Wenn in einem abgeleiteten TableModel Zeilen gelöscht werden können sollen, sollte diese Methode überschrieben werden und das entsprechende Objekt auch in der zu Grunde liegenden Datenbank o.Ä. gelöscht werden.

Parameters:
objectAtRow - Das entfernte Objekt
Returns:
true, wenn wirklich gelöscht wurde, false, falls dabei ein Fehler auftrat oder es aus anderen Gründen nicht möglich war.

updateList

public abstract void updateList()
                         throws java.lang.Exception
Füllt die Liste mit (neuem) Inhalt. Beim implementieren unbedingt überprüfen, ob die Liste null ist und entsprechende Events feuern, wenn sich der Inhalt der Tabelle geändert hat. Falls beim Updaten der Liste aus einer anderen Datenquelle (bspw. einer Datenbank) ein Fehler auftritt, sollte eine entsprechende Exception geworfen werden.

Throws:
java.lang.Exception

getColumnValue

public abstract java.lang.Object getColumnValue(java.lang.Object objectAtRow,
                                                int columnIndex)
Liefert den Inhalt einer Spalte zu einem Objekt aus einer Zeile.

Parameters:
objectAtRow - Das Objekt in dieser Zeile
columnIndex - Die Spalte der Tabelle
Returns:
Was soll in der Tabelle an dieser Stelle angezeigt werden?