package hep.io.root.util; import hep.io.root.RootClass; import hep.io.root.interfaces.*; import javax.swing.*; import javax.swing.tree.*; /** * A TreeCellRenderer for Root TNamed objects. * @author Tony Johnson (tonyj@slac.stanford.edu) * @version $Id: RootDirectoryTreeCellRenderer.java 8584 2006-08-10 23:06:37Z duns $ */ public class RootDirectoryTreeCellRenderer extends DefaultTreeCellRenderer { private final static Icon h1Icon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/h1_t.gif")); private final static Icon h2Icon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/h2_t.gif")); private final static Icon h3Icon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/h3_t.gif")); private final static Icon rootdbIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/rootdb_t.gif")); private final static Icon treeIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/tree_t.gif")); private final static Icon branchIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/branch_t.gif")); private final static Icon branchObIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/branch-ob_t.gif")); private final static Icon branchClIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/branch-cl_t.gif")); public java.awt.Component getTreeCellRendererComponent(JTree p1, Object p2, boolean p3, boolean p4, boolean p5, int p6, boolean p7) { super.getTreeCellRendererComponent(p1, p2, p3, p4, p5, p6, p7); if (p2 instanceof TKey) { TKey key = (TKey) p2; setText(key.getTitle() + " (" + key.getName() + ";" + key.getCycle() + ")"); } else if (p2 instanceof TNamed) { TNamed named = (TNamed) p2; setText(named.getTitle() + " (" + named.getName() + ")"); } if (p2 instanceof TBranchObject) setIcon(branchObIcon); else if (p2 instanceof TBranchClones) setIcon(branchClIcon); else if (p2 instanceof TBranch) setIcon(branchIcon); else if (p2 instanceof TKey) { try { RootClass rc = ((TKey) p2).getObjectClass(); Class jc = rc.getJavaClass(); if (TTree.class.isAssignableFrom(jc)) setIcon(treeIcon); // else if (rc.instanceOf("TH2")) setIcon(h2Icon); // else if (rc.instanceOf("TH3")) setIcon(h3Icon); // else if (rc.instanceOf("TH1")) setIcon(h1Icon); else if (TFile.class.isAssignableFrom(jc)) setIcon(rootdbIcon); } catch (java.io.IOException x) {} catch (Throwable x) {} } return this; } }