1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.gui.tree;
21
22 import java.awt.Component;
23
24 import javax.swing.Icon;
25 import javax.swing.JTree;
26 import javax.swing.tree.DefaultTreeCellRenderer;
27
28 import org.xnap.gui.table.LeafTreeTableNode;
29 import org.xnap.gui.table.TreeTableModel;
30 import org.xnap.gui.util.IconHelper;
31
32 /***
33 */
34 public class NetworkTreeCellRenderer extends DefaultTreeCellRenderer
35 {
36
37
38
39 /***
40 * The icon for a node.
41 */
42 public static final Icon NETWORK_ICON
43 = IconHelper.getIcon("network.png", 16);
44
45 /***
46 * The icon for a leaf.
47 */
48 public static final Icon HOST_ICON
49 = IconHelper.getIcon("network_local.png", 16);
50
51
52
53 private TreeTableModel ttm;
54
55
56
57 public NetworkTreeCellRenderer(TreeTableModel ttm)
58 {
59 this.ttm = ttm;
60 }
61
62
63
64 public Component getTreeCellRendererComponent(JTree tree, Object value,
65 boolean sel,
66 boolean expanded,
67 boolean leaf, int row,
68 boolean hasFocus)
69 {
70 super.getTreeCellRendererComponent
71 (tree, value, sel, expanded, leaf, row, hasFocus);
72
73 Object o = ttm.getValueAt(value, 0);
74 setText((o != null) ? o.toString() : null);
75
76 setIcon(value instanceof LeafTreeTableNode ? HOST_ICON : NETWORK_ICON);
77
78 return this;
79 }
80
81 }