de.bielefeld.umweltamt.aui.utils
Class EditableListTableModel

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
              extended by de.bielefeld.umweltamt.aui.utils.EditableListTableModel
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel

public abstract class EditableListTableModel
extends ListTableModel

Eine TableModel-Grundlage, basierend auf einer java.util.Liste . Jede Zeile der Tabelle ist ein Objekt in der Liste. Im EditableListTableModel ist die Liste zusätzlich noch editier- und erweiterbar.

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
EditableListTableModel(java.lang.String[] columns, boolean updateAtInit)
           
EditableListTableModel(java.lang.String[] columns, boolean updateAtInit, boolean removeAllowed)
           
 
Method Summary
abstract  void editObject(java.lang.Object objectAtRow, int columnIndex, java.lang.Object newValue)
          Wird aufgerufen um das Attribut von objectAtRow in der Zeile columnIndex auf newValue zu ändern.
 java.lang.Object getObjectAtRow(int rowIndex)
          Liefert das Objekt in einer bestimmten Zeile der Tabelle, bzw. der Liste.
 int getRowCount()
          Liefert die Anzahl Zeilen in der Liste + 1.
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
          Liefert das Objekt in einer bestimmten Zelle dieser Tabelle.
 boolean hasChanged()
          überprüft, ob die Liste verändert wurde.
 boolean isCellEditable(int rowIndex, int columnIndex)
           
abstract  java.lang.Object newObject()
          Wird aufgerufen um ein neues (mit Standard-Werten initialisiertes) Objekt der Liste hinzuzufügen.
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
          Leitet die Veränderung an das entsprechende Objekt in der Liste weiter, bzw. erzeugt zu erst ein neues Objekt (wenn die Leerzeile bearbeitet wird).
 
Methods inherited from class de.bielefeld.umweltamt.aui.utils.ListTableModel
getColumnValue, getList, objectRemoved, removeRow, rowExists, setList, updateList
 
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, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EditableListTableModel

public EditableListTableModel(java.lang.String[] columns,
                              boolean updateAtInit)

EditableListTableModel

public EditableListTableModel(java.lang.String[] columns,
                              boolean updateAtInit,
                              boolean removeAllowed)
Method Detail

getValueAt

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

Specified by:
getValueAt in interface javax.swing.table.TableModel
Overrides:
getValueAt in class ListTableModel
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

getObjectAtRow

public java.lang.Object getObjectAtRow(int rowIndex)
Liefert das Objekt in einer bestimmten Zeile der Tabelle, bzw. der Liste.

Overrides:
getObjectAtRow in class ListTableModel
Parameters:
rowIndex - Die Zeile
Returns:
Das Objekt in der Zeile rowIndex oder null, falls die Zeile nicht existiert

getRowCount

public int getRowCount()
Liefert die Anzahl Zeilen in der Liste + 1. Damit wird sichergestellt, dass immer eine Leerzeile zum anlegen einer neuen Zeile zur Verfügung steht.

Specified by:
getRowCount in interface javax.swing.table.TableModel
Overrides:
getRowCount in class ListTableModel
Returns:
Die Anzahlt der Zeilen + 1
See Also:
TableModel.getRowCount()

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Specified by:
isCellEditable in interface javax.swing.table.TableModel
Overrides:
isCellEditable in class javax.swing.table.AbstractTableModel
Returns:
true

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int rowIndex,
                       int columnIndex)
Leitet die Veränderung an das entsprechende Objekt in der Liste weiter, bzw. erzeugt zu erst ein neues Objekt (wenn die Leerzeile bearbeitet wird).

Specified by:
setValueAt in interface javax.swing.table.TableModel
Overrides:
setValueAt in class javax.swing.table.AbstractTableModel

hasChanged

public boolean hasChanged()
überprüft, ob die Liste verändert wurde.

Returns:
true, wenn die Liste verändert wurde, sonst false

editObject

public abstract void editObject(java.lang.Object objectAtRow,
                                int columnIndex,
                                java.lang.Object newValue)
Wird aufgerufen um das Attribut von objectAtRow in der Zeile columnIndex auf newValue zu ändern.

Parameters:
objectAtRow - Das zu verändernde Objekt
columnIndex - Welche Spalte verändert werden soll
newValue - Der geänderte Wert

newObject

public abstract java.lang.Object newObject()
Wird aufgerufen um ein neues (mit Standard-Werten initialisiertes) Objekt der Liste hinzuzufügen. Wird benötigt, wenn der Benutzer eine neue Zeile anlegt.

Returns:
Ein neues Objekt, dass der Liste hinzugefügt wird