org.progeeks.util.swing
Class AbstractTreeModel

java.lang.Object
  extended by org.progeeks.util.swing.AbstractTreeModel
All Implemented Interfaces:
javax.swing.tree.TreeModel
Direct Known Subclasses:
OrientedForestModel, RootedTreeViewModel

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

Abstract implementation of the Swing TreeModel interface. Provides default implementations for the listener management and notification. Subclassed only need to implement actual tree methods... which most have default implementations based on a the getChildList() method. The subclass must provide implementations for getRoot() and getChildList(). If getChildList() is not implemented, then the subclass must provide getChild(), getChildCount(), getIndexOfChild(), and getRoot().

Version:
$Revision: 1.2 $
Author:
Paul Speed

Constructor Summary
protected AbstractTreeModel()
           
 
Method Summary
 void addTreeModelListener(javax.swing.event.TreeModelListener l)
           
protected  void fireTreeNodesChanged(javax.swing.event.TreeModelEvent event)
           
protected  void fireTreeNodesInserted(javax.swing.event.TreeModelEvent event)
           
protected  void fireTreeNodesRemoved(javax.swing.event.TreeModelEvent event)
           
protected  void fireTreeStructureChanged(javax.swing.event.TreeModelEvent event)
           
 java.lang.Object getChild(java.lang.Object parent, int index)
          Returns the child for the specified index or null.
 int getChildCount(java.lang.Object parent)
          Returns the number of children for the specified parent.
 java.util.List getChildList(java.lang.Object parent)
          Returns a List of child nodes for the specified parent.
 int getIndexOfChild(java.lang.Object parent, java.lang.Object child)
          Returns the index of the specified child of parent or -1 if either the parent or child are null.
protected  javax.swing.event.TreeModelListener[] getListeners()
           
 boolean isLeaf(java.lang.Object node)
          Returns true if the specified node is a leaf.
 void removeTreeModelListener(javax.swing.event.TreeModelListener l)
           
 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
 
Methods inherited from interface javax.swing.tree.TreeModel
getRoot
 

Constructor Detail

AbstractTreeModel

protected AbstractTreeModel()
Method Detail

getChildList

public java.util.List getChildList(java.lang.Object parent)
Returns a List of child nodes for the specified parent. This is an optional operation and may throw UnsupportedOperationException.


getChild

public java.lang.Object getChild(java.lang.Object parent,
                                 int index)
Returns the child for the specified index or null. The default implementation relies on the getChildList() method.

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

getChildCount

public int getChildCount(java.lang.Object parent)
Returns the number of children for the specified parent. The default implementation relies on the getChildList() method.

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

getIndexOfChild

public int getIndexOfChild(java.lang.Object parent,
                           java.lang.Object child)
Returns the index of the specified child of parent or -1 if either the parent or child are null. Default implementation relies on the getChildIterator() method.

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

isLeaf

public boolean isLeaf(java.lang.Object node)
Returns true if the specified node is a leaf. The default implementation returns (getChildCount(node) == 0).

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

addTreeModelListener

public void addTreeModelListener(javax.swing.event.TreeModelListener l)
Specified by:
addTreeModelListener 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

getListeners

protected javax.swing.event.TreeModelListener[] getListeners()

fireTreeNodesChanged

protected void fireTreeNodesChanged(javax.swing.event.TreeModelEvent event)

fireTreeNodesInserted

protected void fireTreeNodesInserted(javax.swing.event.TreeModelEvent event)

fireTreeNodesRemoved

protected void fireTreeNodesRemoved(javax.swing.event.TreeModelEvent event)

fireTreeStructureChanged

protected void fireTreeStructureChanged(javax.swing.event.TreeModelEvent event)


Copyright © 2002-2003 Paul Speed. All Rights Reserved.