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 FileSystemModel

    java.lang.Object
      org.jdesktop.swingx.treetable.AbstractTreeTableModel
          org.jdesktop.swingx.treetable.FileSystemModel

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

    public class FileSystemModel

extends AbstractTreeTableModel

A tree table model to simulate a file system.

This tree table model implementation extends `AbstractTreeTableModel`. The file system metaphor demonstrates that it is often easier to directly implement tree structures directly instead of using intermediaries, such as `TreeTableNode`.

A comparison of this class with `SimpleFileSystemModel`, shows that extending `AbstractTreeTableModel` is often easier than creating a model from scratch.

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

Fields inherited from class org.jdesktop.swingx.treetable.AbstractTreeTableModel
`modelSupport, root`

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

Method Summary
`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` | `getIndexOfChild(java.lang.Object parent, java.lang.Object child)`
`java.io.File` | `getRoot()`
`java.lang.Object` | `getValueAt(java.lang.Object node, int column)` Returns the value for the `node` at `columnIndex`.
`boolean` | `isLeaf(java.lang.Object node)` Returns `true` if `node` is a leaf.
`void` | `setRoot(java.io.File root)` Sets the root for this tree table model.

Methods inherited from class org.jdesktop.swingx.treetable.AbstractTreeTableModel
`addTreeModelListener, getHierarchicalColumn, getTreeModelListeners, isCellEditable, removeTreeModelListener, setValueAt, valueForPathChanged`

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

Constructor Detail

### FileSystemModel

    public FileSystemModel()

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

### FileSystemModel

    public FileSystemModel(java.io.File root)

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

  Parameters:
    `root` - the root for this model; this may be different than the root directory for a file system.

Method Detail

### getChild

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

### getChildCount

    public int getChildCount(java.lang.Object parent)

### 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`
  Overrides:
    `getColumnClass` in class `AbstractTreeTableModel`
  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()

  Description copied from interface: `TreeTableModel`
  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.

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

### getColumnName

    public java.lang.String getColumnName(int column)

  Description copied from class: `AbstractTreeTableModel`
  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`
  Overrides:
    `getColumnName` in class `AbstractTreeTableModel`
  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)

  Description copied from interface: `TreeTableModel`
  Returns the value for the `node` at `columnIndex`. The `node` must be managed by this model. Unamanaged nodes should throw an `IllegalArgumentException`.

  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)`

### getIndexOfChild

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

### getRoot

    public java.io.File getRoot()

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

### setRoot

    public void setRoot(java.io.File root)

  Sets the root for this tree table model. This method will notify listeners that a change has taken place.

  Parameters:
    `root` - the new root node to set

### isLeaf

    public boolean isLeaf(java.lang.Object node)

  Returns `true` if `node` is a leaf.

  Specified by:
    `isLeaf` in interface `javax.swing.tree.TreeModel`
  Overrides:
    `isLeaf` in class `AbstractTreeTableModel`
  Parameters:
    `node` - a node in the tree, obtained from this data source
  Returns:
    true if `node` is a leaf

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.