Package org.apache.jorphan.gui
Class AbstractTreeTableModel
- java.lang.Object
-
- javax.swing.table.AbstractTableModel
-
- javax.swing.table.DefaultTableModel
-
- org.apache.jorphan.gui.AbstractTreeTableModel
-
- All Implemented Interfaces:
Serializable
,TableModel
,TreeTableModel
- Direct Known Subclasses:
DefaultTreeTableModel
public abstract class AbstractTreeTableModel extends DefaultTableModel implements TreeTableModel
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description protected List<Class<?>>
classes
protected List<String>
headers
protected EventListenerList
listener
protected List<Object>
objects
protected List<Functor>
readFunctors
protected TreeNode
rootNode
protected List<Functor>
writeFunctors
-
Fields inherited from class javax.swing.table.DefaultTableModel
columnIdentifiers, dataVector
-
Fields inherited from class javax.swing.table.AbstractTableModel
listenerList
-
-
Constructor Summary
Constructors Constructor Description AbstractTreeTableModel(String[] headers, Functor[] readFunctors, Functor[] writeFunctors, Class<?>[] editorClasses)
AbstractTreeTableModel(TreeNode root)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTableModelListener(TableModelListener l)
void
clearData()
void
fireTreeNodesChanged(TreeNode source, Object[] path, int[] indexes, Object[] children)
Object
getChild(Object parent, int index)
int
getChildCount(Object parent)
Class<?>
getColumnClass(int arg0)
int
getColumnCount()
The implementation is exactly the same as ObjectTableModel.getColumnCount.String
getColumnName(int columnIndex)
Object
getRootNode()
The root node for the TreeTableint
getRowCount()
The implementation is exactly the same as ObjectTableModel.getRowCount.Object
getValueAt(int rowIndex, int columnIndex)
Subclasses need to implement the logic for the method and return the value at the specific cell.Object
getValueAt(Object node, int col)
The method is similar to getValueAt(int,int).boolean
isCellEditable(int rowIndex, int columnIndex)
By default the abstract class returns true.boolean
isCellEditable(Object node, int col)
the method is similar to isCellEditable(int,int).boolean
isLeaf(Object node)
the implementation checks if the Object is a treenode.void
nodeStructureChanged(TreeNode node)
void
removeTableModelListener(TableModelListener l)
void
setValueAt(Object aValue, int rowIndex, int columnIndex)
void
setValueAt(Object val, Object node, int column)
the method is similar to isCellEditable(int,int).-
Methods inherited from class javax.swing.table.DefaultTableModel
addColumn, addColumn, addColumn, addRow, addRow, convertToVector, convertToVector, getDataVector, insertRow, insertRow, moveRow, newDataAvailable, newRowsAdded, removeRow, rowsRemoved, setColumnCount, setColumnIdentifiers, setColumnIdentifiers, setDataVector, setDataVector, setNumRows, setRowCount
-
Methods inherited from class javax.swing.table.AbstractTableModel
findColumn, fireTableCellUpdated, fireTableChanged, fireTableDataChanged, fireTableRowsDeleted, fireTableRowsInserted, fireTableRowsUpdated, fireTableStructureChanged, getListeners, getTableModelListeners
-
-
-
-
Field Detail
-
rootNode
protected final TreeNode rootNode
-
listener
protected final EventListenerList listener
-
-
Method Detail
-
getRootNode
public Object getRootNode()
The root node for the TreeTable- Returns:
- the root node
-
getValueAt
public Object getValueAt(Object node, int col)
The method is similar to getValueAt(int,int). Instead of int, the row is an object.- Specified by:
getValueAt
in interfaceTreeTableModel
- Parameters:
node
- the node which value is to be fetchedcol
- the column of the node- Returns:
- the value at the column
-
isCellEditable
public boolean isCellEditable(Object node, int col)
the method is similar to isCellEditable(int,int). Instead of int, the row is an object.- Specified by:
isCellEditable
in interfaceTreeTableModel
- Parameters:
node
- the node which value is to be fetchedcol
- the column of the node- Returns:
true
if cell is editable
-
setValueAt
public void setValueAt(Object val, Object node, int column)
the method is similar to isCellEditable(int,int). Instead of int, the row is an object.- Specified by:
setValueAt
in interfaceTreeTableModel
- Parameters:
val
- the value to be setnode
- the node which value is to be setcolumn
- the column of the node
-
getColumnCount
public int getColumnCount()
The implementation is exactly the same as ObjectTableModel.getColumnCount.- Specified by:
getColumnCount
in interfaceTableModel
- Overrides:
getColumnCount
in classDefaultTableModel
-
getRowCount
public int getRowCount()
The implementation is exactly the same as ObjectTableModel.getRowCount.- Specified by:
getRowCount
in interfaceTableModel
- Overrides:
getRowCount
in classDefaultTableModel
-
isCellEditable
public boolean isCellEditable(int rowIndex, int columnIndex)
By default the abstract class returns true. It is up to subclasses to override the implementation.- Specified by:
isCellEditable
in interfaceTableModel
- Overrides:
isCellEditable
in classDefaultTableModel
-
getColumnClass
public Class<?> getColumnClass(int arg0)
- Specified by:
getColumnClass
in interfaceTableModel
- Overrides:
getColumnClass
in classAbstractTableModel
-
getValueAt
public Object getValueAt(int rowIndex, int columnIndex)
Subclasses need to implement the logic for the method and return the value at the specific cell.- Specified by:
getValueAt
in interfaceTableModel
- Overrides:
getValueAt
in classDefaultTableModel
-
setValueAt
public void setValueAt(Object aValue, int rowIndex, int columnIndex)
- Specified by:
setValueAt
in interfaceTableModel
- Overrides:
setValueAt
in classDefaultTableModel
-
getColumnName
public String getColumnName(int columnIndex)
- Specified by:
getColumnName
in interfaceTableModel
- Overrides:
getColumnName
in classDefaultTableModel
-
getChildCount
public int getChildCount(Object parent)
-
isLeaf
public boolean isLeaf(Object node)
the implementation checks if the Object is a treenode. If it is, it returnsisLeaf()
, otherwise it returnsfalse
.- Parameters:
node
- object to be checked forisLeaf()
- Returns:
true
if object is a leaf node,false
otherwise
-
addTableModelListener
public void addTableModelListener(TableModelListener l)
- Specified by:
addTableModelListener
in interfaceTableModel
- Overrides:
addTableModelListener
in classAbstractTableModel
-
removeTableModelListener
public void removeTableModelListener(TableModelListener l)
- Specified by:
removeTableModelListener
in interfaceTableModel
- Overrides:
removeTableModelListener
in classAbstractTableModel
-
nodeStructureChanged
public void nodeStructureChanged(TreeNode node)
-
fireTreeNodesChanged
public void fireTreeNodesChanged(TreeNode source, Object[] path, int[] indexes, Object[] children)
-
clearData
public void clearData()
-
-