|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jdesktop.swingx.treetable.SimpleFileSystemModel
public class SimpleFileSystemModel
A tree table model to simulate a file system.
This tree table model implementation does not extends
AbstractTreeTableModel
. The file system metaphor demonstrates that
it is often easier to directly implement tree structures directly instead of
using intermediaries, such as TreeNode
.
It would be possible to create this same class by extending
AbstractTreeTableModel
, however the number of methods that you would
need to override almost precludes that means of implementation.
A "full" version of this model might allow editing of file names, the deletion of files, and the movement of files. This simple implementation does not intend to tackle such problems, but this implementation may be extended to handle such details.
Field Summary | |
---|---|
protected EventListenerList |
listenerList
|
Constructor Summary | |
---|---|
SimpleFileSystemModel()
Creates a file system model, using the root directory as the model root. |
|
SimpleFileSystemModel(File root)
Creates a file system model, using the specified root as the
model root. |
Method Summary | |
---|---|
void |
addTreeModelListener(TreeModelListener l)
Adds a listener for the TreeModelEvent
posted after the tree changes. |
File |
getChild(Object parent,
int index)
Returns the child of parent at index index
in the parent's
child array. |
int |
getChildCount(Object parent)
Returns the number of children of parent . |
Class<?> |
getColumnClass(int column)
Returns the most specific superclass for all the cell values in the column. |
int |
getColumnCount()
Returns the number of columns in the model. |
String |
getColumnName(int column)
Returns the name of the column at columnIndex . |
int |
getHierarchicalColumn()
Returns the column that is the "tree" column. |
int |
getIndexOfChild(Object parent,
Object child)
Returns the index of child in parent. |
File |
getRoot()
Returns the root of the tree. |
TreeModelListener[] |
getTreeModelListeners()
Gets a an array of all the listeners attached to this model. |
Object |
getValueAt(Object node,
int column)
Returns the value for the node at columnIndex . |
boolean |
isCellEditable(Object node,
int column)
Returns true if the cell for the node at columnIndex is
editable. |
boolean |
isLeaf(Object node)
Returns true if node is a leaf. |
void |
removeTreeModelListener(TreeModelListener l)
Removes a listener previously added with addTreeModelListener . |
void |
setValueAt(Object value,
Object node,
int column)
Sets the value for the node at columnIndex to
value . |
void |
valueForPathChanged(TreePath path,
Object newValue)
Messaged when the user has altered the value for the item identified by path to newValue . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected EventListenerList listenerList
Constructor Detail |
---|
public SimpleFileSystemModel()
public SimpleFileSystemModel(File root)
root
as the
model root.
Method Detail |
---|
public File getChild(Object parent, int index)
parent
at index index
in the parent's
child array. parent
must be a node previously obtained
from this data source. This should not return null
if index
is a valid index for parent
(that is index >= 0 &&
index < getChildCount(parent
)).
getChild
in interface TreeModel
parent
- a node in the tree, obtained from this data source
parent
at index index
public int getChildCount(Object parent)
parent
.
Returns 0 if the node
is a leaf or if it has no children. parent
must be a node
previously obtained from this data source.
getChildCount
in interface TreeModel
parent
- a node in the tree, obtained from this data source
parent
public Class<?> getColumnClass(int column)
JXTreeTable
to set up a default
renderer and editor for the column.
getColumnClass
in interface TreeTableModel
column
- the index of the column
TableModel.getColumnClass(int)
public int getColumnCount()
JXTreeTable
uses
this method to determine how many columns it should create and display by
default.
getColumnCount
in interface TreeTableModel
TableModel.getColumnCount()
public String getColumnName(int column)
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.
getColumnName
in interface TreeTableModel
column
- the index of the column
TableModel.getColumnName(int)
public Object getValueAt(Object node, int column)
node
at columnIndex
. The
node
must be managed by this model. Unamanaged nodes should throw
an IllegalArgumentException
.
getValueAt
in interface TreeTableModel
node
- the node whose value is to be queriedcolumn
- the column whose value is to be queried
TreeTableModel.setValueAt(java.lang.Object, java.lang.Object, int)
,
TableModel.getValueAt(int, int)
public int getHierarchicalColumn()
getHierarchicalColumn
in interface TreeTableModel
public boolean isCellEditable(Object node, int column)
node
at columnIndex
is
editable. Otherwise, setValueAt
on the cell will not change the
value of that cell. The node
must be managed by this model.
Unamanaged nodes should throw an IllegalArgumentException
.
isCellEditable
in interface TreeTableModel
node
- the node whose value to be queriedcolumn
- the column whose value to be queried
TreeTableModel.setValueAt(java.lang.Object, java.lang.Object, int)
,
TableModel.isCellEditable(int, int)
public void setValueAt(Object value, Object node, int column)
node
at columnIndex
to
value
. The node
must be managed by this model.
Unamanaged nodes should throw an IllegalArgumentException
.
setValueAt
in interface TreeTableModel
value
- the new valuenode
- the node whose value is to be changedcolumn
- the column whose value is to be changedTreeTableModel.getValueAt(java.lang.Object, int)
,
TreeTableModel.isCellEditable(java.lang.Object, int)
,
TableModel.setValueAt(Object, int, int)
public void addTreeModelListener(TreeModelListener l)
TreeModelEvent
posted after the tree changes.
addTreeModelListener
in interface TreeModel
l
- the listener to addTreeModel.removeTreeModelListener(javax.swing.event.TreeModelListener)
public int getIndexOfChild(Object parent, Object child)
parent
or child
is null
, returns -1.
If either parent
or child
don't
belong to this tree model, returns -1.
getIndexOfChild
in interface TreeModel
parent
- a note in the tree, obtained from this data sourcechild
- the node we are interested in
child
or parent
are null
or don't belong to this tree modelpublic File getRoot()
null
only if the tree has no nodes.
getRoot
in interface TreeModel
public boolean isLeaf(Object node)
true
if node
is a leaf.
It is possible for this method to return false
even if node
has no children.
A directory in a filesystem, for example,
may contain no files; the node representing
the directory is not a leaf, but it also has no children.
isLeaf
in interface TreeModel
node
- a node in the tree, obtained from this data source
node
is a leafpublic void removeTreeModelListener(TreeModelListener l)
addTreeModelListener
.
removeTreeModelListener
in interface TreeModel
l
- the listener to removeTreeModel.addTreeModelListener(javax.swing.event.TreeModelListener)
public void valueForPathChanged(TreePath path, Object newValue)
path
to newValue
.
If newValue
signifies a truly new value
the model should post a treeNodesChanged
event.
valueForPathChanged
in interface TreeModel
path
- path to the node that the user has alterednewValue
- the new value from the TreeCellEditorpublic TreeModelListener[] getTreeModelListeners()
null
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |