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 package org.ximtec.igesture.tool.explorer;
27
28 import java.awt.Component;
29 import java.util.Map;
30
31 import javax.swing.Icon;
32 import javax.swing.JTree;
33 import javax.swing.tree.DefaultTreeCellRenderer;
34
35 import org.ximtec.igesture.tool.explorer.core.NodeInfo;
36
37
38
39
40
41
42
43 public class NodeRenderer extends DefaultTreeCellRenderer {
44
45
46
47
48 private Map<Class<?>, NodeInfo> nodeInfos;
49
50 public NodeRenderer(Map<Class<?>, NodeInfo> nodeInfos) {
51 this.nodeInfos = nodeInfos;
52 }
53
54 @Override
55 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf,
56 int row, boolean hasFocus) {
57
58 if (nodeInfos.get(value.getClass()) != null) {
59
60 NodeInfo nodeInfo = nodeInfos.get(value.getClass());
61
62 setToolTipText(nodeInfo.getTooltip());
63
64 Icon icon;
65
66 if(expanded){
67 icon = nodeInfo.getExpandedIcon();
68 }else{
69 icon = nodeInfo.getIcon();
70 }
71
72 if(expanded && icon == null){
73 icon = nodeInfo.getIcon();
74 }
75
76 if (icon != null) {
77 setIcon(icon);
78 }
79
80 String name;
81 if ((name = nodeInfo.getName(value)) != null) {
82 setText(name);
83 }
84 }
85
86 return this;
87 }
88 }