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 17 18 public class DependTree extends JPanel implements TreeSelectionListener { 19 20 private JTree tree; 21 22 private DependTreeModel model; 23 24 27 public DependTree() { 28 this(new DependTreeModel(new AfferentNode(null, new JavaPackage("")))); 29 } 30 31 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 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 66 public DependTreeModel getModel() { 67 return (DependTreeModel) getTree().getModel(); 68 } 69 70 75 public void addTreeSelectionListener(TreeSelectionListener l) { 76 getTree().addTreeSelectionListener(l); 77 } 78 79 85 public void valueChanged(TreeSelectionEvent te) { 86 87 TreePath path = te.getNewLeadSelectionPath(); 88 89 if (path != null) { 90 Object o = path.getLastPathComponent(); 91 } 92 } 93 94 99 private JScrollPane createScrollPane() { 100 JScrollPane pane = new JScrollPane(getTree()); 101 return pane; 102 } 103 104 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 124 private JTree getTree() { 125 if (tree == null) { 126 tree = createTree(); 127 } 128 129 return tree; 130 } 131 } 132 133 | Popular Tags |