package nl.helixsoft.gui;
import java.util.HashSet;
import java.util.Set;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.TreeModel;
/**
* In swing, there is an AbstractTableModel to get you started with implementing a TableModel,
* but there is no AbstractTreeModel. So this is it.
*/
public abstract class AbstractTreeModel implements TreeModel
{
private Set<TreeModelListener> listeners = new HashSet<TreeModelListener>();
@Override
public void addTreeModelListener(TreeModelListener arg0) {
listeners.add(arg0);
}
protected void fireTreeNodesChanged(TreeModelEvent e)
{
for (TreeModelListener l : listeners)
{
l.treeNodesChanged(e);
}
}
protected void fireTreeNodesInserted(TreeModelEvent e)
{
for (TreeModelListener l : listeners)
{
l.treeNodesInserted(e);
}
}
protected void fireTreeNodesRemoved(TreeModelEvent e)
{
for (TreeModelListener l : listeners)
{
l.treeNodesRemoved(e);
}
}
protected void fireTreeStructureChanged(TreeModelEvent e)
{
for (TreeModelListener l : listeners)
{
l.treeStructureChanged(e);
}
}
@Override
public void removeTreeModelListener(TreeModelListener arg0)
{
listeners.remove(arg0);
}
}