TreeModelEventpublic class TreeModelEvent extends EventObject Encapsulates information describing changes to a tree model, and
used to notify tree model listeners of the change.
For more information and examples see
How to Write a Tree Model Listener,
a section in The Java Tutorial.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is
appropriate for short term storage or RMI between applications running
the same version of Swing. As of 1.4, support for long term storage
of all JavaBeansTM
has been added to the java.beans package.
Please see {@link java.beans.XMLEncoder}. |
Fields Summary |
---|
protected TreePath | pathPath to the parent of the nodes that have changed. | protected int[] | childIndicesIndices identifying the position of where the children were. | protected Object[] | childrenChildren that have been removed. |
Constructors Summary |
---|
public TreeModelEvent(Object source, Object[] path, int[] childIndices, Object[] children)Used to create an event when nodes have been changed, inserted, or
removed, identifying the path to the parent of the modified items as
an array of Objects. All of the modified objects are siblings which are
direct descendents (not grandchildren) of the specified parent.
The positions at which the inserts, deletes, or changes occurred are
specified by an array of int . The indexes in that array
must be in order, from lowest to highest.
For changes, the indexes in the model correspond exactly to the indexes
of items currently displayed in the UI. As a result, it is not really
critical if the indexes are not in their exact order. But after multiple
inserts or deletes, the items currently in the UI no longer correspond
to the items in the model. It is therefore critical to specify the
indexes properly for inserts and deletes.
For inserts, the indexes represent the final state of the tree,
after the inserts have occurred. Since the indexes must be specified in
order, the most natural processing methodology is to do the inserts
starting at the lowest index and working towards the highest. Accumulate
a Vector of Integer objects that specify the
insert-locations as you go, then convert the Vector to an
array of int to create the event. When the postition-index
equals zero, the node is inserted at the beginning of the list. When the
position index equals the size of the list, the node is "inserted" at
(appended to) the end of the list.
For deletes, the indexes represent the initial state of the tree,
before the deletes have occurred. Since the indexes must be specified in
order, the most natural processing methodology is to use a delete-counter.
Start by initializing the counter to zero and start work through the
list from lowest to higest. Every time you do a delete, add the current
value of the delete-counter to the index-position where the delete occurred,
and append the result to a Vector of delete-locations, using
addElement() . Then increment the delete-counter. The index
positions stored in the Vector therefore reflect the effects of all previous
deletes, so they represent each object's position in the initial tree.
(You could also start at the highest index and working back towards the
lowest, accumulating a Vector of delete-locations as you go using the
insertElementAt(Integer, 0) .) However you produce the Vector
of initial-positions, you then need to convert the Vector of Integer
objects to an array of int to create the event.
Notes: | public TreeModelEvent(Object source, TreePath path, int[] childIndices, Object[] children)Used to create an event when nodes have been changed, inserted, or
removed, identifying the path to the parent of the modified items as
a TreePath object. For more information on how to specify the indexes
and objects, see
TreeModelEvent(Object,Object[],int[],Object[]) .
super(source);
this.path = path;
this.childIndices = childIndices;
this.children = children;
| public TreeModelEvent(Object source, Object[] path)Used to create an event when the node structure has changed in some way,
identifying the path to the root of a modified subtree as an array of
Objects. A structure change event might involve nodes swapping position,
for example, or it might encapsulate multiple inserts and deletes in the
subtree stemming from the node, where the changes may have taken place at
different levels of the subtree.
Note:
JTree collapses all nodes under the specified node, so that only its
immediate children are visible.
this(source, new TreePath(path));
| public TreeModelEvent(Object source, TreePath path)Used to create an event when the node structure has changed in some way,
identifying the path to the root of the modified subtree as a TreePath
object. For more information on this event specification, see
TreeModelEvent(Object,Object[]) .
super(source);
this.path = path;
this.childIndices = new int[0];
|
Methods Summary |
---|
public int[] | getChildIndices()Returns the values of the child indexes. If this is a removal event
the indexes point to locations in the initial list where items
were removed. If it is an insert, the indices point to locations
in the final list where the items were added. For node changes,
the indices point to the locations of the modified nodes.
if(childIndices != null) {
int cCount = childIndices.length;
int[] retArray = new int[cCount];
System.arraycopy(childIndices, 0, retArray, 0, cCount);
return retArray;
}
return null;
| public java.lang.Object[] | getChildren()Returns the objects that are children of the node identified by
getPath at the locations specified by
getChildIndices . If this is a removal event the
returned objects are no longer children of the parent node.
if(children != null) {
int cCount = children.length;
Object[] retChildren = new Object[cCount];
System.arraycopy(children, 0, retChildren, 0, cCount);
return retChildren;
}
return null;
| public java.lang.Object[] | getPath()Convenience method to get the array of objects from the TreePath
instance that this event wraps.
if(path != null)
return path.getPath();
return null;
| public TreePath | getTreePath()For all events, except treeStructureChanged,
returns the parent of the changed nodes.
For treeStructureChanged events, returns the ancestor of the
structure that has changed. This and
getChildIndices are used to get a list of the effected
nodes.
The one exception to this is a treeNodesChanged event that is to
identify the root, in which case this will return the root
and getChildIndices will return null. return path;
| public java.lang.String | toString()Returns a string that displays and identifies this object's
properties.
StringBuffer retBuffer = new StringBuffer();
retBuffer.append(getClass().getName() + " " +
Integer.toString(hashCode()));
if(path != null)
retBuffer.append(" path " + path);
if(childIndices != null) {
retBuffer.append(" indices [ ");
for(int counter = 0; counter < childIndices.length; counter++)
retBuffer.append(Integer.toString(childIndices[counter])+ " ");
retBuffer.append("]");
}
if(children != null) {
retBuffer.append(" children [ ");
for(int counter = 0; counter < children.length; counter++)
retBuffer.append(children[counter] + " ");
retBuffer.append("]");
}
return retBuffer.toString();
|
|