package com.vci.client.omd.ui; 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.omd.btm.wrapper.BtmItemWrapper; import com.vci.client.omd.lifecycle.ui.LifeCycleWrapper; import com.vci.client.omd.linktype.LinkTypeWrapper; import com.vci.client.omd.statepool.StatePoolWrapper; import com.vci.client.omd.versionrule.util.VersionRuleWrapper; import com.vci.client.ui.swing.VCISwingUtil; import com.vci.corba.omd.btm.BtmItem; import com.vci.corba.omd.lcm.LifeCycle; import com.vci.corba.omd.ltm.LinkType; import com.vci.corba.omd.stm.StatePool; import com.vci.corba.omd.vrm.VersionRule; public class OmdTreeCellRenderer 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 BtmItemWrapper || obj instanceof BtmItem){ icon = "object.png"; } else if (obj instanceof LinkTypeWrapper || obj instanceof LinkType) { icon = "link.png"; } else if (obj instanceof VersionRuleWrapper || obj instanceof VersionRule) { icon = "verrule.png"; } else if (obj instanceof LifeCycleWrapper || obj instanceof LifeCycle){ icon = "lifeCycle.png"; } else if (obj instanceof StatePoolWrapper || obj instanceof StatePool){ icon = "state.png"; } else { if (node.isLeaf()){ icon = "file.png"; }else{ icon = "folder.png"; } } } else icon = "house.png"; } setIcon(VCISwingUtil.createImageIcon(icon)); } catch (Exception e) { e.printStackTrace(); } return this; } }