Package org.jdesktop.swingx.tree
Class TreeModelSupport
- java.lang.Object
-
- org.jdesktop.swingx.tree.TreeModelSupport
-
public final class TreeModelSupport extends java.lang.Object
Support for change notification, usable byTreeModel
s. The changed/inserted/removed is expressed in terms of aTreePath
, it's up to the client model to build it as appropriate. This is inspired byAbstractTreeModel
from Christian Kaufhold, www.chka.de. TODO - implement and test precondition failure of added/removed notification
-
-
Constructor Summary
Constructors Constructor Description TreeModelSupport(javax.swing.tree.TreeModel model)
Creates the support class for the givenTreeModel
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addTreeModelListener(javax.swing.event.TreeModelListener l)
private javax.swing.event.TreeModelEvent
createStructureChangedEvent(javax.swing.tree.TreePath parentPath)
Creates and returns a TreeModelEvent for structureChanged event notification.private javax.swing.event.TreeModelEvent
createTreeModelEvent(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Creates and returns a TreeModelEvent for changed/inserted/removed event notification.void
fireChildAdded(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the child has been added to the the node identified by the given parent path at the given position.void
fireChildChanged(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the given child of the node identified by the given parent path has been modified.void
fireChildRemoved(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the child has been removed from the node identified by the given parent path from the given position.void
fireChildrenAdded(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children have been added to the the node identified by the given parent path at the given locations.void
fireChildrenChanged(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children of the node identified by the given parent path have been modified.void
fireChildrenRemoved(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children have been removed to the the node identified by the given parent path from the given locations.void
fireNewRoot()
Notifies registered TreeModelListeners that the tree's root has been replaced.void
firePathChanged(javax.swing.tree.TreePath path)
Notifies registered TreeModelListeners that the the node identified by the given path has been modified.void
firePathLeafStateChanged(javax.swing.tree.TreePath path)
Call when a node has changed its leaf state.void
fireTreeStructureChanged(javax.swing.tree.TreePath subTreePath)
Notifies registered TreeModelListeners that the structure below the node identified by the given path has been completely changed.javax.swing.event.TreeModelListener[]
getTreeModelListeners()
void
removeTreeModelListener(javax.swing.event.TreeModelListener l)
-
-
-
Method Detail
-
fireNewRoot
public void fireNewRoot()
Notifies registered TreeModelListeners that the tree's root has been replaced. Can cope with a null root.
-
firePathLeafStateChanged
public void firePathLeafStateChanged(javax.swing.tree.TreePath path)
Call when a node has changed its leaf state.PENDING: rename? Do we need it?
- Parameters:
path
- the path to the node with changed leaf state.
-
fireTreeStructureChanged
public void fireTreeStructureChanged(javax.swing.tree.TreePath subTreePath)
Notifies registered TreeModelListeners that the structure below the node identified by the given path has been completely changed.NOTE: the subtree path maybe null if the root is null. If not null, it must contain at least one element (the root).
- Parameters:
subTreePath
- the path to the root of the subtree whose structure was changed.- Throws:
java.lang.NullPointerException
- if the path is not null but empty or contains null elements.
-
firePathChanged
public void firePathChanged(javax.swing.tree.TreePath path)
Notifies registered TreeModelListeners that the the node identified by the given path has been modified.- Parameters:
path
- the path to the node that has been modified, must not be null and must not contain null path elements.
-
fireChildChanged
public void fireChildChanged(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the given child of the node identified by the given parent path has been modified. The parent path must not be null, nor empty nor contain null elements.- Parameters:
parentPath
- the path to the parent of the modified children.index
- the position of the childchild
- child node that has been modified, must not be null
-
fireChildrenChanged
public void fireChildrenChanged(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children of the node identified by the given parent path have been modified. The parent path must not be null, nor empty nor contain null elements. Note that the index array must contain the position of the corresponding child in the the children array. The indices must be in ascending order.The exception to these rules is if the root itself has been modified (which has no parent by definition). In this case the path must be the path to the root and both indices and children arrays must be null.
- Parameters:
parentPath
- the path to the parent of the modified children.indices
- the positions of the modified childrenchildren
- the modified children
-
fireChildAdded
public void fireChildAdded(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the child has been added to the the node identified by the given parent path at the given position. The parent path must not be null, nor empty nor contain null elements.- Parameters:
parentPath
- the path to the parent of added child.index
- the position of the added childrenchild
- the added child
-
fireChildRemoved
public void fireChildRemoved(javax.swing.tree.TreePath parentPath, int index, java.lang.Object child)
Notifies registered TreeModelListeners that the child has been removed from the node identified by the given parent path from the given position. The parent path must not be null, nor empty nor contain null elements.- Parameters:
parentPath
- the path to the parent of removed child.index
- the position of the removed children before the removalchild
- the removed child
-
fireChildrenAdded
public void fireChildrenAdded(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children have been added to the the node identified by the given parent path at the given locations. The parent path and the child array must not be null, nor empty nor contain null elements. Note that the index array must contain the position of the corresponding child in the the children array. The indices must be in ascending order.- Parameters:
parentPath
- the path to the parent of the added children.indices
- the positions of the added children.children
- the added children.
-
fireChildrenRemoved
public void fireChildrenRemoved(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Notifies registered TreeModelListeners that the given children have been removed to the the node identified by the given parent path from the given locations. The parent path and the child array must not be null, nor empty nor contain null elements. Note that the index array must contain the position of the corresponding child in the the children array. The indices must be in ascending order.- Parameters:
parentPath
- the path to the parent of the removed children.indices
- the positions of the removed children before the removalchildren
- the removed children
-
createStructureChangedEvent
private javax.swing.event.TreeModelEvent createStructureChangedEvent(javax.swing.tree.TreePath parentPath)
Creates and returns a TreeModelEvent for structureChanged event notification. The given path may be null to indicate setting a null root. In all other cases, the first path element must contain the root and the last path element the rootNode of the structural change. Specifically, a TreePath with a single element (which is the root) denotes a structural change of the complete tree.- Parameters:
parentPath
- the path to the root of the changed structure, may be null to indicate setting a null root.- Returns:
- a TreeModelEvent for structureChanged notification.
- See Also:
TreeModelEvent
,TreeModelListener
-
createTreeModelEvent
private javax.swing.event.TreeModelEvent createTreeModelEvent(javax.swing.tree.TreePath parentPath, int[] indices, java.lang.Object[] children)
Creates and returns a TreeModelEvent for changed/inserted/removed event notification.- Parameters:
parentPath
- path to parent of modified nodeindices
- the indices of the modified children (before the change)children
- the array of modified children- Returns:
- a TreeModelEvent for changed/inserted/removed notification
- See Also:
TreeModelEvent
,TreeModelListener
-
addTreeModelListener
public void addTreeModelListener(javax.swing.event.TreeModelListener l)
-
getTreeModelListeners
public javax.swing.event.TreeModelListener[] getTreeModelListeners()
-
removeTreeModelListener
public void removeTreeModelListener(javax.swing.event.TreeModelListener l)
-
-