KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jdepend > swingui > DependTree


1 package jdepend.swingui;
2
3 import java.awt.*;
4 import javax.swing.*;
5 import javax.swing.tree.*;
6 import javax.swing.event.*;
7
8 import jdepend.framework.JavaPackage;
9
10 /**
11  * The <code>DependTree</code> class defines the graphical tree for displaying
12  * the packages and their hierarchical dependencies.
13  *
14  * @author <b>Mike Clark</b>
15  * @author Clarkware Consulting, Inc.
16  */

17
18 public class DependTree extends JPanel implements TreeSelectionListener {
19
20     private JTree tree;
21
22     private DependTreeModel model;
23
24     /**
25      * Constructs a <code>DependTree</code> with an empty tree model.
26      */

27     public DependTree() {
28         this(new DependTreeModel(new AfferentNode(null, new JavaPackage(""))));
29     }
30
31     /**
32      * Constructs a <code>DependTree</code> with the specified tree model.
33      *
34      * @param model Depend tree model.
35      */

36     public DependTree(DependTreeModel model) {
37
38         setBorder(BorderFactory.createTitledBorder(model.getRoot().toString()));
39
40         setModel(model);
41
42         setLayout(new BorderLayout());
43
44         JScrollPane pane = createScrollPane();
45
46         add(pane, "Center");
47     }
48
49     /**
50      * Sets the tree model.
51      *
52      * @param model Tree model.
53      */

54     public void setModel(DependTreeModel model) {
55         this.model = model;
56         setBorder(BorderFactory.createTitledBorder(model.getRoot().toString()));
57         getTree().setModel(this.model);
58
59     }
60
61     /**
62      * Returns the tree model.
63      *
64      * @return Tree model.
65      */

66     public DependTreeModel getModel() {
67         return (DependTreeModel) getTree().getModel();
68     }
69
70     /**
71      * Registers the specified listener with this tree.
72      *
73      * @param l Tree selection listener.
74      */

75     public void addTreeSelectionListener(TreeSelectionListener l) {
76         getTree().addTreeSelectionListener(l);
77     }
78
79     /**
80      * Callback method triggered whenever the value of the tree selection
81      * changes.
82      *
83      * @param te Event that characterizes the change.
84      */

85     public void valueChanged(TreeSelectionEvent te) {
86
87         TreePath path = te.getNewLeadSelectionPath();
88
89         if (path != null) {
90             Object JavaDoc o = path.getLastPathComponent();
91         }
92     }
93
94     /**
95      * Creates and returns a scroll pane.
96      *
97      * @return Scroll pane.
98      */

99     private JScrollPane createScrollPane() {
100         JScrollPane pane = new JScrollPane(getTree());
101         return pane;
102     }
103
104     /**
105      * Creates and returns a peered tree.
106      *
107      * @return Tree.
108      */

109     private JTree createTree() {
110
111         JTree tree = new JTree();
112         tree.setShowsRootHandles(false);
113         tree.setFont(new Font("Dialog", Font.PLAIN, 12));
114         tree.addTreeSelectionListener(this);
115         tree.setRootVisible(false);
116         tree.setLargeModel(true);
117
118         return tree;
119     }
120
121     /*
122      * Returns the peered tree. @return A non-null tree.
123      */

124     private JTree getTree() {
125         if (tree == null) {
126             tree = createTree();
127         }
128
129         return tree;
130     }
131 }
132
133
Popular Tags