Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.jdesktop.swingx.treetable
Class SimpleFileSystemModel

    java.lang.Object
      org.jdesktop.swingx.treetable.SimpleFileSystemModel

All Implemented Interfaces:
  javax.swing.tree.TreeModel, TreeTableModel

    public class SimpleFileSystemModel

extends java.lang.Object
implements TreeTableModel

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.

Author:
  Ramesh Gupta, Karl Schaefer

Field Summary
`protected javax.swing.event.EventListenerList` | `listenerList`

Constructor Summary
`SimpleFileSystemModel()` Creates a file system model, using the root directory as the model root.
`SimpleFileSystemModel(java.io.File root)` Creates a file system model, using the specified `root` as the model root.

Method Summary
`void` | `addTreeModelListener(javax.swing.event.TreeModelListener l)`
`java.io.File` | `getChild(java.lang.Object parent, int index)`
`int` | `getChildCount(java.lang.Object parent)`
`java.lang.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.
`java.lang.String` | `getColumnName(int column)` Returns the name of the column at `columnIndex`.
`int` | `getHierarchicalColumn()` Returns the column that is the "tree" column.
`int` | `getIndexOfChild(java.lang.Object parent, java.lang.Object child)`
`java.io.File` | `getRoot()`
`javax.swing.event.TreeModelListener[]` | `getTreeModelListeners()` Gets a an array of all the listeners attached to this model.
`java.lang.Object` | `getValueAt(java.lang.Object node, int column)` Returns the value for the `node` at `columnIndex`.
`boolean` | `isCellEditable(java.lang.Object node, int column)` Returns true if the cell for the `node` at `columnIndex` is editable.
`boolean` | `isLeaf(java.lang.Object node)`
`void` | `removeTreeModelListener(javax.swing.event.TreeModelListener l)`
`void` | `setValueAt(java.lang.Object value, java.lang.Object node, int column)` Sets the value for the `node` at `columnIndex` to `value`.
`void` | `valueForPathChanged(javax.swing.tree.TreePath path, java.lang.Object newValue)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### listenerList

    protected javax.swing.event.EventListenerList listenerList

Constructor Detail

### SimpleFileSystemModel

    public SimpleFileSystemModel()

  Creates a file system model, using the root directory as the model root.

### SimpleFileSystemModel

    public SimpleFileSystemModel(java.io.File root)

  Creates a file system model, using the specified `root` as the model root.

Method Detail

### getChild

    public java.io.File getChild(java.lang.Object parent,
                                 int index)

  Specified by:
    `getChild` in interface `javax.swing.tree.TreeModel`

### getChildCount

    public int getChildCount(java.lang.Object parent)

  Specified by:
    `getChildCount` in interface `javax.swing.tree.TreeModel`

### getColumnClass

    public java.lang.Class<?> getColumnClass(int column)

  Returns the most specific superclass for all the cell values in the column. This is used by the `JXTreeTable` to set up a default renderer and editor for the column.

  Specified by:
    `getColumnClass` in interface `TreeTableModel`
  Parameters:
    `column` - the index of the column
  Returns:
    the common ancestor class of the object values in the model.
  See Also:
    `TableModel.getColumnClass(int)`

### getColumnCount

    public int getColumnCount()

  Returns the number of columns in the model. A `JXTreeTable` uses this method to determine how many columns it should create and display by default.

  Specified by:
    `getColumnCount` in interface `TreeTableModel`
  Returns:
    the number of columns in the model
  See Also:
    `TableModel.getColumnCount()`

### getColumnName

    public java.lang.String getColumnName(int column)

  Returns the name of the column at `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.

  Specified by:
    `getColumnName` in interface `TreeTableModel`
  Parameters:
    `column` - the index of the column
  Returns:
    the name of the column
  See Also:
    `TableModel.getColumnName(int)`

### getValueAt

    public java.lang.Object getValueAt(java.lang.Object node,
                                       int column)

  Returns the value for the `node` at `columnIndex`. The `node` must be managed by this model. Unamanaged nodes should throw an `IllegalArgumentException`.

  Specified by:
    `getValueAt` in interface `TreeTableModel`
  Parameters:
    `node` - the node whose value is to be queried
    `column` - the column whose value is to be queried
  Returns:
    the value Object at the specified cell
  See Also:
    `TreeTableModel.setValueAt(java.lang.Object, java.lang.Object, int)`, `TableModel.getValueAt(int, int)`

### getHierarchicalColumn

    public int getHierarchicalColumn()

  Returns the column that is the "tree" column. While it is not required, most implementations will default the first column to be the hierarchical one.

  Specified by:
    `getHierarchicalColumn` in interface `TreeTableModel`
  Returns:
    the index of the hierarchical column or -1 if no column is the hierarchical column.

### isCellEditable

    public boolean isCellEditable(java.lang.Object node,
                                  int column)

  Returns true if the cell for the `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`.

  Specified by:
    `isCellEditable` in interface `TreeTableModel`
  Parameters:
    `node` - the node whose value to be queried
    `column` - the column whose value to be queried
  Returns:
    true if the cell is editable
  See Also:
    `TreeTableModel.setValueAt(java.lang.Object, java.lang.Object, int)`, `TableModel.isCellEditable(int, int)`

### setValueAt

    public void setValueAt(java.lang.Object value,
                           java.lang.Object node,
                           int column)

  Sets the value for the `node` at `columnIndex` to `value`. The `node` must be managed by this model. Unamanaged nodes should throw an `IllegalArgumentException`.

  Specified by:
    `setValueAt` in interface `TreeTableModel`
  Parameters:
    `value` - the new value
    `node` - the node whose value is to be changed
    `column` - the column whose value is to be changed
  See Also:
    `TreeTableModel.getValueAt(java.lang.Object, int)`, `TreeTableModel.isCellEditable(java.lang.Object, int)`, `TableModel.setValueAt(Object, int, int)`

### addTreeModelListener

    public void addTreeModelListener(javax.swing.event.TreeModelListener l)

  Specified by:
    `addTreeModelListener` in interface `javax.swing.tree.TreeModel`

### getIndexOfChild

    public int getIndexOfChild(java.lang.Object parent,
                               java.lang.Object child)

  Specified by:
    `getIndexOfChild` in interface `javax.swing.tree.TreeModel`

### getRoot

    public java.io.File getRoot()

  Specified by:
    `getRoot` in interface `javax.swing.tree.TreeModel`

### isLeaf

    public boolean isLeaf(java.lang.Object node)

  Specified by:
    `isLeaf` in interface `javax.swing.tree.TreeModel`

### removeTreeModelListener

    public void removeTreeModelListener(javax.swing.event.TreeModelListener l)

  Specified by:
    `removeTreeModelListener` in interface `javax.swing.tree.TreeModel`

### valueForPathChanged

    public void valueForPathChanged(javax.swing.tree.TreePath path,
                                    java.lang.Object newValue)

  Specified by:
    `valueForPathChanged` in interface `javax.swing.tree.TreeModel`

### getTreeModelListeners

    public javax.swing.event.TreeModelListener[] getTreeModelListeners()

  Gets a an array of all the listeners attached to this model.

  Returns:
    an array of listeners; this array is guaranteed to be non-`null`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2010. All Rights Reserved.