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;
}
}