## net.percederberg.mib
Class MIBTreeModel

    java.lang.Object
      |
      +--net.percederberg.mib.MIBTreeModel

All Implemented Interfaces:
  javax.swing.tree.TreeModel

public class MIBTreeModel
extends java.lang.Object
implements javax.swing.tree.TreeModel

This class is a TreeModel interface to the MIB symbol tree. It supports being inserted in TreeModel components, and makes no changes to the symbols.

Author:
  Per Cederberg, per@percederberg.net

Constructor Summary
`MIBTreeModel(MIB mib)` Creates a parse tree with the given parameters.

Method Summary
`void` `addTreeModelListener(javax.swing.event.TreeModelListener l)` Adds a listener for the TreeModelEvent posted after the tree changes.
`java.lang.Object` `getChild(java.lang.Object parent, int index)` Returns the child of parent at index index in the parent's child array.
`int` `getChildCount(java.lang.Object parent)` Returns the number of children of parent.
`int` `getIndexOfChild(java.lang.Object parent, java.lang.Object child)` Returns the index of child in parent.
`java.lang.Object` `getRoot()` Returns the root of the tree.
`boolean` `isLeaf(java.lang.Object node)` Returns true if node is a leaf.
`void` `removeTreeModelListener(javax.swing.event.TreeModelListener l)` Removes a listener previously added with addTreeModelListener().
`void` `valueForPathChanged(javax.swing.tree.TreePath path, java.lang.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`

Constructor Detail

### MIBTreeModel

    public MIBTreeModel(MIB mib)

  Creates a parse tree with the given parameters.
  Parameters:
    `mib` - the MIB object

Method Detail

### getRoot

    public java.lang.Object getRoot()

  Returns the root of the tree. Returns null only if the tree has no nodes.
  Specified by:
    `getRoot` in interface `javax.swing.tree.TreeModel`
  Returns:
    the root of the tree

### getChild

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

  Returns the child of 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)).
  Specified by:
    `getChild` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `parent` - a node in the tree, obtained from this data source
    `index` - the child index
  Returns:
    the child of parent at index index

### getChildCount

    public int getChildCount(java.lang.Object parent)

  Returns the number of children of 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.
  Specified by:
    `getChildCount` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `parent` - a node in the tree, obtained from this data source
  Returns:
    the number of children of the node parent

### isLeaf

    public boolean isLeaf(java.lang.Object node)

  Returns 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.
  Specified by:
    `isLeaf` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `node` - a node in the tree, obtained from this data source
  Returns:
    true if node is a leaf

### valueForPathChanged

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

  Messaged when the user has altered the value for the item identified by path to newValue. If newValue signifies a truly new value the model should post a treeNodesChanged event.
  Specified by:
    `valueForPathChanged` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `path` - path to the node that the user has altered.
    `newValue` - the new value from the TreeCellEditor.

### getIndexOfChild

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

  Returns the index of child in parent.
  Specified by:
    `getIndexOfChild` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `parent` - the parent node
    `child` - the child node
  Returns:
    the child index, or -1 if not present

### addTreeModelListener

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

  Adds a listener for the TreeModelEvent posted after the tree changes.
  Specified by:
    `addTreeModelListener` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `l` - the listener to add
  See Also:
    `removeTreeModelListener(javax.swing.event.TreeModelListener)`

### removeTreeModelListener

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

  Removes a listener previously added with addTreeModelListener().
  Specified by:
    `removeTreeModelListener` in interface `javax.swing.tree.TreeModel`
  Parameters:
    `l` - the listener to remove
  See Also:
    `addTreeModelListener(javax.swing.event.TreeModelListener)`