package japlot.root;

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) {}
}

 

Ads help maintain this website.