/* interface MutableTreeNode
*
* Copyright (C) 2003 R M Pitman
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package charvax.swing.tree;
/**
* Defines the requirements for a tree node object that can change --
* by adding or removing child nodes, or by changing the contents of a
* user object stored in the node.
*/
public interface MutableTreeNode
extends TreeNode
{
/** Adds child to this MutableTreeNode at index.
* The setParent() method of child will be called.
*/
public void insert(MutableTreeNode child, int index);
/** Removes the child at index from this MutableTreeNode.
*/
public void remove(int index);
/** Removes node from this MutableTreeNode.
* The setParent() method of "node" will be called.
*/
public void remove(MutableTreeNode node);
/** Returns the user object associated with this MutableTreeNode.
* (this method is not actually in java.swing.tree.MutableTreeNode).
*/
public Object getUserObject();
/** Resets the user object of this MutableTreeNode to object.
*/
public void setUserObject(Object object);
/** Removes this MutableTreeNode from its parent.
*/
public void removeFromParent();
/** Sets the parent of this MutableTreeNode to newParent.
*/
public void setParent(MutableTreeNode newParent);
}