1
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