001 // Copyright 2004, 2005 The Apache Software Foundation 002 // 003 // Licensed under the Apache License, Version 2.0 (the "License"); 004 // you may not use this file except in compliance with the License. 005 // You may obtain a copy of the License at 006 // 007 // http://www.apache.org/licenses/LICENSE-2.0 008 // 009 // Unless required by applicable law or agreed to in writing, software 010 // distributed under the License is distributed on an "AS IS" BASIS, 011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012 // See the License for the specific language governing permissions and 013 // limitations under the License. 014 015 package org.apache.tapestry.contrib.tree.model; 016 017 import java.util.Collection; 018 019 /** 020 * Defines the requirements for a tree node object that can change -- 021 * by adding or removing child nodes, or by changing the contents 022 * of a user object stored in the node. 023 * 024 * @see javax.swing.tree.DefaultMutableTreeNode 025 * @see javax.swing.JTree 026 * 027 * @author ceco 028 */ 029 030 public interface IMutableTreeNode extends ITreeNode 031 { 032 /** 033 * Adds collection of<code>children</code> to the receiver. 034 * <code>Child</code> will be messaged with <code>setParent</code>. 035 */ 036 void insert(Collection colChildren); 037 038 /** 039 * Removes <code>node</code> from the receiver. <code>setParent</code> 040 * will be messaged on <code>node</code>. 041 */ 042 void remove(IMutableTreeNode node); 043 044 /** 045 * Removes the receiver from its parent. 046 */ 047 void removeFromParent(); 048 049 /** 050 * Sets the parent of the receiver to <code>newParent</code>. 051 */ 052 void setParent(IMutableTreeNode newParent); 053 }