package hep.io.root.util; import hep.io.root.interfaces.TNamed; import hep.io.root.interfaces.TStreamerBase; import hep.io.root.interfaces.TStreamerElement; import hep.io.root.interfaces.TStreamerInfo; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; /** * A TreeCellRenderer for StreamerInfo objects. * @author Tony Johnson (tonyj@slac.stanford.edu) * @version $Id: StreamerInfoTreeCellRenderer.java 13617 2009-04-09 22:48:46Z tonyj $ */ public class StreamerInfoTreeCellRenderer extends DefaultTreeCellRenderer { private final static Icon classIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/class_t.gif")); private final static Icon memberIcon = new ImageIcon(RootDirectoryTreeCellRenderer.class.getResource("images/member_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 TNamed) { TNamed named = (TNamed) p2; String title = named.getTitle(); if ((title != null) && (title.length() > 0)) setText(named.getName() + " \"" + title + "\""); else setText(named.getName()); } if (p2 instanceof TStreamerInfo) setIcon(classIcon); else if (p2 instanceof TStreamerBase) setIcon(classIcon); else if (p2 instanceof TStreamerElement) { TStreamerElement e = (TStreamerElement) p2; StringBuffer text = new StringBuffer(getText()); text.insert(0, " "); for (int i = 0; i < e.getArrayDim(); i++) text.insert(0, "[]"); text.insert(0, e.getTypeName()); setText(text.toString()); setIcon(memberIcon); } return this; } }