package org.oddjob.monitor.model;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeNode;
/**
* Abstraction for something able to manage {@link TreeModelListener}s
* and dispatch events to them.
*
* @author rob
*
*/
public interface TreeEventDispatcher {
/**
* Add a {@link TreeModelListener}.
*
* @param tml The listener.
*/
public void addTreeModelListener(TreeModelListener tml);
/**
* Remove a {@link TreeModelListener}.
*
* @param tml The lienter.
*/
public void removeTreeModelListener(TreeModelListener tml);
/**
* Notify all listeners of a tree node changed event.
*
* @param changed The node that's changed.
*/
public void fireTreeNodesChanged(TreeNode changed);
/**
* Fire a tree node inserted event.
*
* @param changed The parent node.
* @param child The child.
* @param index The index the child has been inserted at.
*/
public void fireTreeNodesInserted(TreeNode changed, JobTreeNode child, int index);
/**
* Fire a tree node removed event.
*
* @param changed The parent node.
* @param child The node removed.
* @param index The index of where the node was removed from.
*/
public void fireTreeNodesRemoved(TreeNode changed, JobTreeNode child, int index);
}