View Javadoc

1   // Copied into FreeHEP, 2004.
2   package hep.wired.util.test;
3   
4   
5   import java.awt.*;
6   import java.awt.event.*;
7   import java.util.*;
8   
9   import javax.swing.*;
10  import javax.swing.tree.*;
11  
12  import hep.wired.util.DefaultTristateTreeNode;
13  import hep.wired.util.TristateTreeModel;
14  import hep.wired.util.TristateTreeNode;
15  import hep.wired.util.JTristateTree;
16  
17  /***
18   *
19   * @author Mark Donszelmann
20   * @version $Id: JTristateTreeTest.java 641 2005-02-24 23:22:10Z duns $
21   */
22  public class JTristateTreeTest extends JPanel {
23  
24      public JTristateTreeTest() {
25  
26          setLayout(new BorderLayout());
27  
28          TristateTestNode root = new TristateTestNode("Root");
29  
30          TristateTestNode geometry = new TristateTestNode("Geometry");
31          root.add(geometry);
32          TristateTestNode box1 = new TristateTestNode("Box1");
33          geometry.add(box1);
34          box1.add(new TristateTestNode("Panel1", false));
35          box1.add(new TristateTestNode("Panel2"));
36          box1.add(new TristateTestNode("Panel3", false));
37          
38          TristateTestNode box2 = new TristateTestNode("Box2");
39          geometry.add(box2);
40          box2.add(new TristateTestNode("PanelA"));
41          box2.add(new TristateTestNode("PanelB"));
42          
43          TristateTestNode event = new TristateTestNode("Event");
44          root.add(event);
45          
46          final TristateTreeModel model = new TristateTreeModel(new DefaultTreeModel(root)) {
47              
48              protected TristateTreeNode createTreeNode(Object modelNode) {
49                  if (modelNode instanceof TristateTestNode) {        
50                      return new DefaultTristateTreeNode(modelNode, ((TristateTestNode)modelNode).isSelected());
51                  }
52                  return super.createTreeNode(modelNode);
53              }
54                  
55          };
56          
57          JTristateTree tree = new JTristateTree(model);
58  
59          tree.setRootVisible(true);
60          tree.setShowsRootHandles(true);
61          add(new JScrollPane(tree), BorderLayout.CENTER);
62          
63          JButton button = new JButton("Print List");
64          add(button, BorderLayout.SOUTH);
65          
66          button.addActionListener(new ActionListener() {
67              public void actionPerformed(ActionEvent event) {
68                  System.out.print("Selected: [");
69                  for (Iterator i = model.getSelectedSet(null).iterator(); i.hasNext(); ) {
70                      System.out.print(i.next());
71                      if (i.hasNext()) System.out.print(", ");
72                  }
73                  System.out.println("]");
74              }
75          });
76      }
77  
78      public static void main(String[] args) {
79  
80          try {
81              String plaf = UIManager.getSystemLookAndFeelClassName();
82              UIManager.setLookAndFeel(plaf);
83          } catch (Exception e) {
84              System.out.println("Error loading Look and Feel");
85          }
86  
87          JFrame frame = new JFrame("JTristateCheckTree Test");
88  
89          frame.getContentPane().setLayout(new GridLayout(1, 1));
90          frame.getContentPane().add(new JTristateTreeTest());
91          frame.setSize(200, 400);
92          frame.setVisible(true);
93      }
94  }
95  
96  
97  /*--- Formatted in Sun Java Convention Style on Mon, Aug 2, '04 ---*/