celeboss.ui
Class MonitorableTableModel

java.lang.Object
  extended byjavax.swing.table.AbstractTableModel
      extended byceleboss.ui.util.SortedTableModel
          extended byceleboss.ui.MonitorableTableModel
All Implemented Interfaces:
java.util.EventListener, java.beans.PropertyChangeListener, java.io.Serializable, javax.swing.table.TableModel
Direct Known Subclasses:
CelebrityTableModel

public abstract class MonitorableTableModel
extends SortedTableModel
implements java.beans.PropertyChangeListener

This table model holds a list of Monitorable objects which are sorted to the columns defined. This model reacts to the changes in the monitored objects. This class is abstract is an explicit table model is expected to be created for each class that implements the Monitorable interface.

Version:
1.0
Author:
bevans
See Also:
Serialized Form

Nested Class Summary
static class MonitorableTableModel.ColumnSpec
          Simple class to record the details of each column
 
Field Summary
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
MonitorableTableModel(MonitorableTableModel.ColumnSpec[] specs)
          Create a model that monitors a set of entities.
 
Method Summary
 int addObject(Monitorable newObject)
          Add a new object to this table model.
 java.lang.Class getColumnClass(int arg0)
          Return the type of this column
 int getColumnCount()
          Return the number of columns displable.
 java.lang.String getColumnDescription(int arg0)
          Get description of the column.
 java.lang.String getColumnName(int arg0)
          Get name of the column.
 void propertyChange(java.beans.PropertyChangeEvent event)
          A change has occured to one of the montiored entities.
 void release()
          This method releases all references to the model and celebrities.
 int removeObject(Monitorable object)
          Remove the specifed object.
 
Methods inherited from class celeboss.ui.util.SortedTableModel
addObject, cellUpdated, getCellValue, getRow, getRowCount, getRowId, getValueAt, removeObject, sortByColumn
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, 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

MonitorableTableModel

public MonitorableTableModel(MonitorableTableModel.ColumnSpec[] specs)
Create a model that monitors a set of entities.

Parameters:
specs - Array of column specs.
Method Detail

addObject

public int addObject(Monitorable newObject)
Add a new object to this table model. It will be inserted according to the sorting parameters. This model will also register itself as a listener.

Parameters:
newObject - Object to add.
Returns:
Index of insertion

getColumnClass

public java.lang.Class getColumnClass(int arg0)
Return the type of this column

Specified by:
getColumnClass in interface javax.swing.table.TableModel
See Also:
TableModel.getColumnClass(int)

getColumnCount

public int getColumnCount()
Return the number of columns displable.

Specified by:
getColumnCount in interface javax.swing.table.TableModel
See Also:
TableModel.getColumnCount()

getColumnDescription

public java.lang.String getColumnDescription(int arg0)
Get description of the column.

Specified by:
getColumnDescription in class SortedTableModel
Parameters:
arg0 - Column index;
Returns:
Column description

getColumnName

public java.lang.String getColumnName(int arg0)
Get name of the column.

Specified by:
getColumnName in interface javax.swing.table.TableModel
Parameters:
arg0 - Column index;
Returns:
Column name
See Also:
TableModel.getColumnName(int)

propertyChange

public void propertyChange(java.beans.PropertyChangeEvent event)
A change has occured to one of the montiored entities. This change may be a change value.

Specified by:
propertyChange in interface java.beans.PropertyChangeListener
Parameters:
event - Description of change.

release

public void release()
This method releases all references to the model and celebrities.

Overrides:
release in class SortedTableModel

removeObject

public int removeObject(Monitorable object)
Remove the specifed object.

Parameters:
object - Object to remove
Returns:
Index of remvoed row.