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 }