田源
2024-03-07 4b4083fd73dc27ece42f4835483565eef0e4f608
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
     * <code>convertValueToText</code>, which ultimately invokes
     * <code>toString</code> on <code>value</code>.
     * The foreground color is set based on the selection and the icon
     * is set based on the <code>leaf</code> and <code>expanded</code>
     * 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;
    }
}