package com.vci.client.omd.linktype; import java.awt.Component; import javax.swing.JTree; import javax.swing.ToolTipManager; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeCellRenderer; import com.vci.client.ui.swing.VCISwingUtil; import com.vci.corba.omd.ltm.LinkType; public class LTTreeCellRenderer extends DefaultTreeCellRenderer{ /** * */ private static final long serialVersionUID = 998267915192603262L; /** * Configures the renderer based on the passed in components. * The value is set from messaging the tree with * convertValueToText, which ultimately invokes * toString on value. * The foreground color is set based on the selection and the icon * is set based on the leaf and expanded * parameters. */ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) { super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); try { ToolTipManager.sharedInstance().registerComponent(tree); DefaultMutableTreeNode node = (DefaultMutableTreeNode) value; String icon = ""; if(node == null || (node != null && node.getUserObject() == null)) { icon = "house.png"; } else { if (node.isRoot()) icon = "folder.png"; else if (node.getUserObject() != null){ Object obj = node.getUserObject(); if (obj instanceof LinkTypeWrapper){ LinkType linkType = ((LinkTypeWrapper)node.getUserObject()).linkType; if (linkType == null) icon = "folder.png"; else icon = "link.png"; } } else icon = "house.png"; } setIcon(VCISwingUtil.createImageIcon(icon)); } catch (Exception e) { e.printStackTrace(); } return this; } }