View Javadoc
1 package net.mlw.util.swing;
2
3 import java.awt.BorderLayout;
4 import java.awt.Component;
5 import java.awt.Insets;
6
7 import javax.swing.JCheckBox;
8 import javax.swing.JPanel;
9 import javax.swing.JTree;
10 import javax.swing.tree.DefaultTreeCellRenderer;
11 import javax.swing.tree.TreeCellRenderer;
12
13 public class CheckTreeCellRenderer extends JPanel implements TreeCellRenderer
14 {
15 protected CheckTreeNode node;
16 protected TreeCellRenderer renderer;
17 protected JCheckBox check;
18
19 public CheckTreeCellRenderer(JTree tree)
20 {
21 this(tree, new DefaultTreeCellRenderer());
22 }
23
24 public CheckTreeCellRenderer(JTree tree, TreeCellRenderer renderer)
25 {
26 setOpaque(false);
27 setLayout(new BorderLayout());
28
29 this.renderer = renderer;
30 add(BorderLayout.CENTER, renderer.getTreeCellRendererComponent(tree, "", true, true, true, 0, true));
31
32 check = new JCheckBox();
33 check.setMargin(new Insets(0, 0, 0, 0));
34 check.setBorderPaintedFlat(true);
35 check.setOpaque(false);
36 add(BorderLayout.WEST, check);
37 }
38
39 public Component getTreeCellRendererComponent(
40 JTree tree,
41 Object value,
42 boolean selected,
43 boolean expanded,
44 boolean leaf,
45 int row,
46 boolean hasFocus)
47 {
48 if (value instanceof CheckTreeNode)
49 {
50 node = (CheckTreeNode) value;
51 check.setSelected(node.isSelected());
52 value = node.getUserObject();
53 }
54 renderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
55 return this;
56 }
57 }
This page was automatically generated by Maven