001    package org.shiftone.jrat.provider.tree.ui.hierarchy;
002    
003    import org.shiftone.jrat.desktop.util.Icons;
004    import org.shiftone.jrat.provider.tree.ui.hierarchy.nodes.ClassHierarchyNode;
005    import org.shiftone.jrat.provider.tree.ui.hierarchy.nodes.MethodHierarchyNode;
006    import org.shiftone.jrat.provider.tree.ui.hierarchy.nodes.PackageHierarchyNode;
007    
008    import javax.swing.*;
009    import javax.swing.tree.DefaultTreeCellRenderer;
010    import java.awt.*;
011    
012    /**
013     * @author jeff@shiftone.org (Jeff Drost)
014     */
015    public class HierarchyTreeCellRenderer extends DefaultTreeCellRenderer {
016    
017        private static Icon PACKAGE = Icons.getIcon("package_obj.png");
018        private static Icon CLASS = Icons.getIcon("class_obj.png");
019        private static Icon METHOD = Icons.getIcon("methpub_obj.png");
020    
021        public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
022            Component component = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
023    
024            if (value instanceof PackageHierarchyNode) {
025    
026                setIcon(PACKAGE);
027    
028            } else if (value instanceof ClassHierarchyNode) {
029    
030                setIcon(CLASS);
031    
032            } else if (value instanceof MethodHierarchyNode) {
033    
034                setIcon(METHOD);
035    
036            }
037    
038            return component;
039        }
040    }