dangsn
2024-12-26 4e9ff2ce6a830bb2340d7c8612c72eea0c5a553e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.vci.client.framework.rightConfig.functiontree;
 
import javax.swing.JTree;
import javax.swing.event.TreeModelEvent;
import javax.swing.event.TreeModelListener;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreeModel;
import javax.swing.tree.TreePath;
 
/**
 * <p>Title: </p>
 * <p>Description: use this class to wrap the JTree, user just set tow parameters 
 * to create a new tree. The parameters are TreeModel and DefaultTreeCellRenderer.</p>
 * <p>Copyright: Copyright (c) 2009</p>
 * <p>Company: VCI</p>
 * @author eddie
 * @time 2009-4-8
 * @version 1.0
 */
public class CommonTree extends JTree{
 
    /** 
     * 
     */
    private static final long serialVersionUID = -7587926620173480552L;
 
    public CommonTree(TreeModel treeModel, DefaultTreeCellRenderer treeCellRenderer) {
        super(treeModel);
        this.putClientProperty("JTree.lineStyle", "Angled");
        this.setCellRenderer(treeCellRenderer);
        this.setEditable(false);
        
        treeModel.addTreeModelListener(new TreeModelListener() {
            public void treeNodesInserted(TreeModelEvent e) {
                try {
                  scrollPathToVisible(new TreePath(e.getPath()));
                } catch (Exception ae) {
                    ae.printStackTrace();
                }
            }
 
            public void treeNodesRemoved(TreeModelEvent e) {
                try {
                   scrollPathToVisible(new TreePath(e.getPath()));
                } catch (Exception ae) {
                    ae.printStackTrace();
                }
            }
 
            public void treeNodesChanged(TreeModelEvent e) {
                try {
                   scrollPathToVisible(new TreePath(e.getPath()));
                } catch (Exception ae) {
                    ae.printStackTrace();
                }
            }
 
            public void treeStructureChanged(TreeModelEvent e) {
                try {
                   scrollPathToVisible(new TreePath(e.getPath()));
                } catch (Exception ae) {
                    ae.printStackTrace();
                }
            }
        });
    }
}