com.jgoodies.binding.extras
Class DelegatingTableModel

java.lang.Object
  extended by javax.swing.table.AbstractTableModel
      extended by com.jgoodies.binding.extras.DelegatingTableModel
All Implemented Interfaces:
java.io.Serializable, javax.swing.table.TableModel

public final class DelegatingTableModel
extends javax.swing.table.AbstractTableModel

This implementation of the TableModel interface delegates all requests to an underlying TableModel delegate. It can be used to change a JTable's model while the table is beeing displayed.

Note: This class is not yet part of the binary Binding library; it comes with the Binding distributions as an extra. The API is work in progress and may change without notice; this class may even be completely removed from future distributions. If you want to use this class, you may consider copying it into your codebase.

Version:
$Revision: 1.2 $
Author:
Karsten Lentzsch
See Also:
Serialized Form

Field Summary
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
DelegatingTableModel()
          Constructs a TableAdaptor on a dummy TableModel.
DelegatingTableModel(javax.swing.table.TableModel delegate)
          Constructs a TableAdaptor on the given delegate TableModel.
DelegatingTableModel(com.jgoodies.binding.value.ValueModel delegateChannel)
          Constructs a TableAdaptor that holds the delegated TableModel in the given delegate channel.
 
Method Summary
 java.lang.Class getColumnClass(int columnIndex)
          Returns the most specific superclass for all the cell values in the column.
 int getColumnCount()
          Returns the number of columns in the model.
 java.lang.String getColumnName(int columnIndex)
          Returns the name of the column at columnIndex.
 javax.swing.table.TableModel getDelegate()
          Returns the current TableModel delegate.
 int getRowCount()
          Returns the number of rows in the model.
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
          Returns the value for the cell at columnIndex and rowIndex.
 void setDelegate(javax.swing.table.TableModel newDelegate)
          Sets a new TableModel delegate.
 
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

DelegatingTableModel

public DelegatingTableModel(com.jgoodies.binding.value.ValueModel delegateChannel)
Constructs a TableAdaptor that holds the delegated TableModel in the given delegate channel.

Parameters:
delegateChannel - a ValueModel that holds the TableModel
Throws:
java.lang.NullPointerException - if delegateChannel is null

DelegatingTableModel

public DelegatingTableModel(javax.swing.table.TableModel delegate)
Constructs a TableAdaptor on the given delegate TableModel.

Parameters:
delegate - a TableModel that is used as initial TableModel delegate

DelegatingTableModel

public DelegatingTableModel()
Constructs a TableAdaptor on a dummy TableModel.

Method Detail

getDelegate

public javax.swing.table.TableModel getDelegate()
Returns the current TableModel delegate.

Returns:
the current TableModel delegate

setDelegate

public void setDelegate(javax.swing.table.TableModel newDelegate)
Sets a new TableModel delegate.

Parameters:
newDelegate - the new TableModel delegate

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
Returns the most specific superclass for all the cell values in the column. This is used by the JTable to set up a default renderer and editor for the column.

Specified by:
getColumnClass in interface javax.swing.table.TableModel
Overrides:
getColumnClass in class javax.swing.table.AbstractTableModel
Parameters:
columnIndex - the index of the column
Returns:
the common ancestor class of the object values in the model.

getColumnCount

public int getColumnCount()
Returns the number of columns in the model. A JTable uses this method to determine how many columns it should create and display by default.

Returns:
the number of columns in the model
See Also:
getRowCount()

getColumnName

public java.lang.String getColumnName(int columnIndex)
Returns the name of the column at columnIndex. This is used to initialize the table's column header name. Note: this name does not need to be unique; two columns in a table can have the same name.

Specified by:
getColumnName in interface javax.swing.table.TableModel
Overrides:
getColumnName in class javax.swing.table.AbstractTableModel
Parameters:
columnIndex - the index of the column
Returns:
the name of the column

getRowCount

public int getRowCount()
Returns the number of rows in the model. A JTable uses this method to determine how many rows it should display. This method should be quick, as it is called frequently during rendering.

Returns:
the number of rows in the model
See Also:
getColumnCount()

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)
Returns the value for the cell at columnIndex and rowIndex.

Parameters:
rowIndex - the row whose value is to be queried
columnIndex - the column whose value is to be queried
Returns:
the value Object at the specified cell