001 package ui.model; 002 003 import javax.swing.tree.TreeModel; 004 005 /** 006 * Model used by a JTreeTable. Adds accessors for the set of columns each 007 * tree node may have. This interface 'borrows' three methods from 008 * TableModel : 009 * <ol> 010 * <li>getColumnClass(column)</li> 011 * <li>getColumnCount()</li> 012 * <li>getColumnName(column)</li> 013 * </ol> 014 * This interface differs from a true TableModel in that 015 * rows are indentified by their tree node rather than by a row number. 016 * Each tree node can return a value for each of the columns and 017 * set that value if isCellEditable() returns true. 018 * The following three methods are similar to TableModel methods 019 * except that row index is replaced by tree node. 020 * <ol> 021 * <li>getValueAt(node, column)</li> 022 * <li>setValueAt(value, node, column)</li> 023 * <li>isCellEditable(node, column)</li> 024 * </ol> 025 * 026 * @author Philip Milne 027 * @author Scott Violet 028 */ 029 public interface TreeTableModel extends TreeModel 030 { 031 /** 032 * Returns the type for column number <code>column</code>. 033 */ 034 public Class getColumnClass(int column); 035 036 /** 037 * Returns the number of available column. 038 */ 039 public int getColumnCount(); 040 041 /** 042 * Returns the name for column number <code>column</code>. 043 */ 044 public String getColumnName(int column); 045 046 047 /** 048 * Returns the value to be displayed for node <code>node</code>, 049 * at column number <code>column</code>. 050 */ 051 public Object getValueAt(Object node, int column); 052 053 /** 054 * Sets the value for node <code>node</code>, 055 * at column number <code>column</code>. 056 */ 057 public void setValueAt(Object aValue, Object node, int column); 058 059 /** 060 * Indicates whether the the value for node <code>node</code>, 061 * at column number <code>column</code> is editable. 062 */ 063 public boolean isCellEditable(Object node, int column); 064 065 }