View Javadoc

1   // Copyright 2004, FreeHEP.
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  }