1
2 package hep.wired.util;
3
4 import java.awt.*;
5 import java.util.*;
6
7 import javax.swing.*;
8 import javax.swing.tree.*;
9
10
11 /***
12 *
13 * @author Mark Donszelmann
14 * @version $Id: JTristateTree.java 672 2005-03-08 00:16:11Z duns $
15 */
16 public class JTristateTree extends JTree {
17
18 public JTristateTree() {
19 super();
20 init();
21 }
22
23 public JTristateTree(Hashtable value) {
24 super(value);
25 init();
26 }
27
28 public JTristateTree(Object[] value) {
29 super(value);
30 init();
31 }
32
33 public JTristateTree(TreeModel model) {
34 super(model);
35 init();
36 }
37
38 public JTristateTree(TreeNode root) {
39 super(root);
40 init();
41 }
42
43 public JTristateTree(TreeNode root, boolean asksAllowsChildren) {
44 super(root, asksAllowsChildren);
45 init();
46 }
47
48 public JTristateTree(Vector value) {
49 super(value);
50 init();
51 }
52
53 private void init() {
54 setRootVisible(false);
55 setShowsRootHandles(true);
56 setEditable(true);
57
58 super.setCellRenderer(new TristateTreeCellRenderer(this));
59 setCellEditor(new TristateTreeCellEditor(this));
60 }
61
62 public void setCellRenderer(TreeCellRenderer renderer) {
63 super.setCellRenderer(new TristateTreeCellRenderer(this, renderer));
64 }
65
66 public void setEditorRenderer(TreeCellRenderer renderer) {
67 setCellEditor(new TristateTreeCellEditor(this, renderer));
68 }
69
70 public String convertValueToText(Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
71 TreeModel model = getModel();
72 TristateTreeModel tristateModel = (model instanceof TristateTreeModel) ? (TristateTreeModel)model : null;
73 return tristateModel == null ? super.convertValueToText(value, selected, expanded, leaf, row, hasFocus)
74 : tristateModel.convertValueToText(value, selected, expanded, leaf, row, hasFocus);
75 }
76 }