package hep.io.root.util;
import hep.io.root.interfaces.TStreamerInfo;
import java.util.List;
import javax.swing.tree.TreeModel;
/**
* A tree model for viewing StreamerInfo in a root file
* @author tonyj
* @version $Id: StreamerInfoTreeModel.java 13617 2009-04-09 22:48:46Z tonyj $
*/
public class StreamerInfoTreeModel implements TreeModel
{
private List root;
/** Creates new StreamerInfoTreeModel */
public StreamerInfoTreeModel(List streamerInfoList)
{
root = streamerInfoList;
}
public Object getChild(Object parent, int index)
{
if (parent instanceof List)
return ((List) parent).get(index);
else if (parent instanceof TStreamerInfo)
return ((TStreamerInfo) parent).getElements().getElementAt(index);
else
return null;
}
public int getChildCount(Object parent)
{
if (parent instanceof List)
return ((List) parent).size();
else if (parent instanceof TStreamerInfo)
return ((TStreamerInfo) parent).getElements().size();
else
return 0;
}
public int getIndexOfChild(Object parent, Object child)
{
if (parent instanceof List)
return ((List) parent).indexOf(child);
else if (parent instanceof TStreamerInfo)
return ((TStreamerInfo) parent).getElements().indexOf(child);
else
return 0;
}
public boolean isLeaf(Object obj)
{
return !(obj instanceof List || obj instanceof TStreamerInfo);
}
public Object getRoot()
{
return root;
}
public void addTreeModelListener(javax.swing.event.TreeModelListener treeModelListener) {}
public void removeTreeModelListener(javax.swing.event.TreeModelListener treeModelListener) {}
// The remaining methods are not needed since tree is immutable
public void valueForPathChanged(javax.swing.tree.TreePath treePath, java.lang.Object obj) {}
}