/*
* $Id: ChildrenListManager.java,v 1.2 2006/09/25 08:52:36 acaproni Exp $
*
* $Date: 2006/09/25 08:52:36 $
* $Revision: 1.2 $
* $Author: acaproni $
*
* Copyright CERN, All Rights Reserved.
*/
package cern.gp.nodes.children;
import cern.gp.nodes.children.NodeList;
/**
* A class implementing this interface is a manager of a list of children of a given node.
* It can receive a NodeList that provides a view on the list of nodes that makes
* the children of the given node. The manager is in charge of updating it as needed
* adding or removing nodes using the NodeList interface.
*
* @version $Revision: 1.2 $ $Date: 2006/09/25 08:52:36 $
* @author Lionel Mestre
*/
public interface ChildrenListManager extends ChildrenManager {
/**
* Receives the <code>NodeList</code> that is managed by this manager
* and that can be used to add or remove children.
* <p>
* This method is called lazily once when the children are going
* to be displayed. It is similar to the <code>addNotify()</code>
* of a GUI component.
* </p>
* <p>
* The implementation of this method should do two things. First it
* should initialize the list of children with the current children.
* For that it can use the method <code>addNode</code> of the nodeList.
* Second, and only if the children are dynamic and are changing based
* on some external events, it should keep the reference to the given
* nodeList for future use.
* </p>
* <p>
* If the children are not dynamic, which means that they don't change
* after they have been initialized here, there is no need to keep a
* reference to the nodeList.
* </p>
* @param nodelist the list representing the children
* managed by this manager
*/
public void initChildrenList(NodeList nodeList);
}