fri.gui.swing.polytreetable
Class PolyTreeTableModelAdapter

java.lang.Object
  |
  +--javax.swing.table.AbstractTableModel
        |
        +--fri.gui.swing.polytreetable.PolyTreeTableModelAdapter
All Implemented Interfaces:
java.util.EventListener, PolyTreeExpansionListener, PolyTreeTableModelListener, java.io.Serializable, javax.swing.table.TableModel

public class PolyTreeTableModelAdapter
extends javax.swing.table.AbstractTableModel
implements PolyTreeExpansionListener, PolyTreeTableModelListener

This is the "view" model for JTable, that means, it serves only as a model dummy for the JTable "view". It delegates calls for columns to the PolyTreeTableModel and calls for rows to the PolyTreeView.
It fires events to JTable when the tree expands or collapses. It messages the PolyTreeView when nodes were inserted, deleted or changed in the (real) PolyTreeTableModel.
The model is not connected directly to JTable but by an TableModelAdapter: Model events must be sended FIRST to PolyTreeView and then to JTable, as JTable renders the rows of PolyTreeView.

Author:
Ritzberger Fritz
See Also:
PolyTreeTable, PolyTreeView, Serialized Form

Field Summary
 
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
 
Constructor Summary
PolyTreeTableModelAdapter(PolyTreeTableModel model, PolyTreeView tree)
          Create an adapter as a model proxy to JTable.
 
Method Summary
 java.lang.Class getColumnClass(int column)
          Returns model.getColumnClass().
 int getColumnCount()
          Returns model.getColumnCount().
 java.lang.String getColumnName(int column)
          Returns model.getColumnName().
 int getRowCount()
          Returns the tree row count.
 java.lang.Object getValueAt(int row, int column)
          Returns model.getValueAt().
 boolean isCellEditable(int row, int column)
          Returns model.isCellEditable().
 void setValueAt(java.lang.Object value, int row, int column)
          Calls model.setValueAt().
 void treeCollapsed(PolyTreeExpansionEvent e)
          Messages JTable by fireTableRowsDeleted().
 void treeExpanded(PolyTreeExpansionEvent e)
          Messages JTable by fireTableRowsInserted().
 void treeNodeChanged(PolyTreeTableModelEvent e)
          Messages JTable by fireTableDataChanged().
 void treeNodesInserted(PolyTreeTableModelEvent e)
          Messages first the tree and then JTable by fireTableDataChanged().
 void treeNodesRemoved(PolyTreeTableModelEvent e)
          Messages first the tree and then JTable by fireTableDataChanged().
 void treeStructureChanged(PolyTreeExpansionEvent e)
          A new root has been set.
 
Methods inherited from class javax.swing.table.AbstractTableModel
addTableModelListener, findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners, removeTableModelListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PolyTreeTableModelAdapter

public PolyTreeTableModelAdapter(PolyTreeTableModel model,
                                 PolyTreeView tree)
Create an adapter as a model proxy to JTable.

Method Detail

getColumnCount

public int getColumnCount()
Returns model.getColumnCount().

Specified by:
getColumnCount in interface javax.swing.table.TableModel

getColumnName

public java.lang.String getColumnName(int column)
Returns model.getColumnName().

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

getColumnClass

public java.lang.Class getColumnClass(int column)
Returns model.getColumnClass().

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

getRowCount

public int getRowCount()
Returns the tree row count.

Specified by:
getRowCount in interface javax.swing.table.TableModel

getValueAt

public java.lang.Object getValueAt(int row,
                                   int column)
Returns model.getValueAt().

Specified by:
getValueAt in interface javax.swing.table.TableModel

setValueAt

public void setValueAt(java.lang.Object value,
                       int row,
                       int column)
Calls model.setValueAt().

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

isCellEditable

public boolean isCellEditable(int row,
                              int column)
Returns model.isCellEditable().

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

treeExpanded

public void treeExpanded(PolyTreeExpansionEvent e)
Messages JTable by fireTableRowsInserted().

Specified by:
treeExpanded in interface PolyTreeExpansionListener

treeCollapsed

public void treeCollapsed(PolyTreeExpansionEvent e)
Messages JTable by fireTableRowsDeleted().

Specified by:
treeCollapsed in interface PolyTreeExpansionListener

treeStructureChanged

public void treeStructureChanged(PolyTreeExpansionEvent e)
A new root has been set. Messages JTable by fireTableDataChanged().

Specified by:
treeStructureChanged in interface PolyTreeExpansionListener

treeNodeChanged

public void treeNodeChanged(PolyTreeTableModelEvent e)
Messages JTable by fireTableDataChanged().

Specified by:
treeNodeChanged in interface PolyTreeTableModelListener

treeNodesInserted

public void treeNodesInserted(PolyTreeTableModelEvent e)
Messages first the tree and then JTable by fireTableDataChanged().

Specified by:
treeNodesInserted in interface PolyTreeTableModelListener

treeNodesRemoved

public void treeNodesRemoved(PolyTreeTableModelEvent e)
Messages first the tree and then JTable by fireTableDataChanged().

Specified by:
treeNodesRemoved in interface PolyTreeTableModelListener