com.metamatrix.console.ui.treetable
Class DynamicTreeTableModel

java.lang.Object
  extended by com.metamatrix.console.ui.treetable.AbstractTreeTableModel
      extended by com.metamatrix.console.ui.treetable.DynamicTreeTableModel
All Implemented Interfaces:
TreeTableModel, javax.swing.tree.TreeModel
Direct Known Subclasses:
AuthorizationsModel

public class DynamicTreeTableModel
extends AbstractTreeTableModel

An implementation of TreeTableModel that uses reflection to answer TableModel methods. This works off a handful of values. A TreeNode is used to answer all the TreeModel related methods (similiar to AbstractTreeTableModel and DefaultTreeModel). The column names are specified in the constructor. The values for the columns are dynamically obtained via reflection, you simply provide the method names. The methods used to set a particular value are also specified as an array of method names, a null method name, or null array indicates the column isn't editable. And the class types, used for the TableModel method getColumnClass are specified in the constructor.

Author:
Scott Violet

Field Summary
 
Fields inherited from class com.metamatrix.console.ui.treetable.AbstractTreeTableModel
listenerList, root
 
Constructor Summary
DynamicTreeTableModel(javax.swing.tree.TreeNode root, java.lang.String[] columnNames, java.lang.String[] getterMethodNames, java.lang.String[] setterMethodNames, java.lang.Class[] cTypes)
          Constructor for creating a DynamicTreeTableModel.
 
Method Summary
 java.lang.Object getChild(java.lang.Object node, int i)
          TreeModel method to locate a particular child of the specified node.
 int getChildCount(java.lang.Object node)
          TreeModel method to return the number of children of a particular node.
 java.lang.Class getColumnClass(int column)
          Returns the column class for column column.
 int getColumnCount()
          Returns the number of column names passed into the constructor.
 java.lang.String getColumnName(int column)
          Returns the column name passed into the constructor.
 javax.swing.tree.TreeNode[] getPathToRoot(javax.swing.tree.TreeNode aNode)
          Builds the parents of the node up to and including the root node, where the original node is the last element in the returned array.
 java.lang.Object getValueAt(java.lang.Object node, int column)
          Returns the value for the column column and object node.
 boolean isCellEditable(java.lang.Object node, int column)
          Returns true if there is a setter method name for column column.
 boolean isLeaf(java.lang.Object node)
          TreeModel method to determine if a node is a leaf.
 void setValueAt(java.lang.Object aValue, java.lang.Object node, int column)
          Sets the value to aValue for the object node in column column.
 
Methods inherited from class com.metamatrix.console.ui.treetable.AbstractTreeTableModel
addTreeModelListener, fireTreeNodesChanged, fireTreeNodesInserted, fireTreeNodesRemoved, fireTreeStructureChanged, getIndexOfChild, getRoot, removeTreeModelListener, valueForPathChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DynamicTreeTableModel

public DynamicTreeTableModel(javax.swing.tree.TreeNode root,
                             java.lang.String[] columnNames,
                             java.lang.String[] getterMethodNames,
                             java.lang.String[] setterMethodNames,
                             java.lang.Class[] cTypes)
Constructor for creating a DynamicTreeTableModel.

Method Detail

getChildCount

public int getChildCount(java.lang.Object node)
TreeModel method to return the number of children of a particular node. Since node is a TreeNode, this can be answered via the TreeNode method getChildCount.


getChild

public java.lang.Object getChild(java.lang.Object node,
                                 int i)
TreeModel method to locate a particular child of the specified node. Since node is a TreeNode, this can be answered via the TreeNode method getChild.


isLeaf

public boolean isLeaf(java.lang.Object node)
TreeModel method to determine if a node is a leaf. Since node is a TreeNode, this can be answered via the TreeNode method isLeaf.

Specified by:
isLeaf in interface javax.swing.tree.TreeModel
Overrides:
isLeaf in class AbstractTreeTableModel

getColumnCount

public int getColumnCount()
Returns the number of column names passed into the constructor.


getColumnName

public java.lang.String getColumnName(int column)
Returns the column name passed into the constructor.


getColumnClass

public java.lang.Class getColumnClass(int column)
Returns the column class for column column. This is set in the constructor.

Specified by:
getColumnClass in interface TreeTableModel
Overrides:
getColumnClass in class AbstractTreeTableModel

getValueAt

public java.lang.Object getValueAt(java.lang.Object node,
                                   int column)
Returns the value for the column column and object node. The return value is determined by invoking the method specified in constructor for the passed in column.


isCellEditable

public boolean isCellEditable(java.lang.Object node,
                              int column)
Returns true if there is a setter method name for column column. This is set in the constructor.

Specified by:
isCellEditable in interface TreeTableModel
Overrides:
isCellEditable in class AbstractTreeTableModel

setValueAt

public void setValueAt(java.lang.Object aValue,
                       java.lang.Object node,
                       int column)
Sets the value to aValue for the object node in column column. This is done by using the setter method name, and coercing the passed in value to the specified type.

Specified by:
setValueAt in interface TreeTableModel
Overrides:
setValueAt in class AbstractTreeTableModel

getPathToRoot

public javax.swing.tree.TreeNode[] getPathToRoot(javax.swing.tree.TreeNode aNode)
Builds the parents of the node up to and including the root node, where the original node is the last element in the returned array. The length of the returned array gives the node's depth in the tree.

Parameters:
aNode - the TreeNode to get the path for
an - array of TreeNodes giving the path from the root to the specified node.


Copyright © 2009. All Rights Reserved.