Source code: com/arranger/jarl/shell/views/JarlTreeCellRenderer.java
1 package com.arranger.jarl.shell.views;
2
3 import com.arranger.jarl.util.IconUtil;
4
5 import javax.swing.tree.DefaultTreeCellRenderer;
6 import javax.swing.tree.TreeNode;
7 import javax.swing.*;
8 import java.awt.*;
9
10 /**
11 * JarlTreeCellRenderer created on Apr 18, 2003
12 */
13 public class JarlTreeCellRenderer extends DefaultTreeCellRenderer {
14
15
16
17 /**
18 * Configures the renderer based on the passed in components.
19 * The value is set from messaging the tree with
20 * <code>convertValueToText</code>, which ultimately invokes
21 * <code>toString</code> on <code>value</code>.
22 * The foreground color is set based on the selection and the icon
23 * is set based on on leaf and expanded.
24 */
25 public Component getTreeCellRendererComponent(JTree tree, Object value,
26 boolean sel,
27 boolean expanded,
28 boolean leaf, int row,
29 boolean hasFocus) {
30 Component component = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
31 if (tree.isEnabled() && value instanceof TreeNode) {
32 int nodeType = (leaf) ? IconUtil.TREE_NODE_LEAF : (expanded) ? IconUtil.TREE_NODE_OPEN : IconUtil.TREE_NODE_CLOSED;
33 setIcon(IconUtil.getIcon((TreeNode)value, nodeType));
34 }
35 return component;
36 }
37 }