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 }