diff options
Diffstat (limited to 'src/cppcheckplus/shortcut/MyTree.java')
-rw-r--r-- | src/cppcheckplus/shortcut/MyTree.java | 71 |
1 files changed, 42 insertions, 29 deletions
diff --git a/src/cppcheckplus/shortcut/MyTree.java b/src/cppcheckplus/shortcut/MyTree.java index 775e3a2..5286dde 100644 --- a/src/cppcheckplus/shortcut/MyTree.java +++ b/src/cppcheckplus/shortcut/MyTree.java | |||
@@ -1,7 +1,8 @@ | |||
1 | package cppcheckplus.shortcut; | 1 | package cppcheckplus.shortcut; |
2 | 2 | ||
3 | import cppcheckplus.control.UIFrame; | ||
4 | import cppcheckplus.text.FileTools; | ||
3 | import java.io.File; | 5 | import java.io.File; |
4 | |||
5 | import javax.swing.JPanel; | 6 | import javax.swing.JPanel; |
6 | import javax.swing.JScrollPane; | 7 | import javax.swing.JScrollPane; |
7 | import javax.swing.JTextArea; | 8 | import javax.swing.JTextArea; |
@@ -14,15 +15,13 @@ import javax.swing.tree.DefaultMutableTreeNode; | |||
14 | import javax.swing.tree.DefaultTreeModel; | 15 | import javax.swing.tree.DefaultTreeModel; |
15 | import javax.swing.tree.MutableTreeNode; | 16 | import javax.swing.tree.MutableTreeNode; |
16 | 17 | ||
17 | import cppcheckplus.control.Main; | ||
18 | import cppcheckplus.text.FileTools; | ||
19 | |||
20 | public class MyTree extends JPanel { | 18 | public class MyTree extends JPanel { |
21 | private JTree tree; | ||
22 | public File result; | 19 | public File result; |
23 | public String src; | 20 | public String src; |
24 | private Main jf; | 21 | private final JTree tree; |
22 | private UIFrame jf; | ||
25 | private JTextArea textCode; | 23 | private JTextArea textCode; |
24 | |||
26 | public MyTree() { | 25 | public MyTree() { |
27 | tree = new JTree(); | 26 | tree = new JTree(); |
28 | tree.addTreeExpansionListener(new TreeExpansionAction()); | 27 | tree.addTreeExpansionListener(new TreeExpansionAction()); |
@@ -36,25 +35,28 @@ public class MyTree extends JPanel { | |||
36 | setRootDir(new File("c:/")); | 35 | setRootDir(new File("c:/")); |
37 | setVisible(true); | 36 | setVisible(true); |
38 | } | 37 | } |
39 | 38 | ||
40 | public void setCode(JTextArea textCode, Main jf){ | 39 | public void setCode(JTextArea textCode, UIFrame jf) { |
41 | this.textCode = textCode; | 40 | this.textCode = textCode; |
42 | this.jf=jf; | 41 | this.jf = jf; |
43 | } | 42 | } |
44 | 43 | ||
45 | public void setRootDir(File dir) { | 44 | public void setRootDir(File dir) { |
46 | if(dir==null) | 45 | if (dir == null) { |
47 | return; | 46 | return; |
47 | } | ||
48 | tree.setModel(new DefaultTreeModel(createNode(dir))); | 48 | tree.setModel(new DefaultTreeModel(createNode(dir))); |
49 | MutableTreeNode rootNode = (MutableTreeNode) tree.getModel().getRoot(); | 49 | MutableTreeNode rootNode = (MutableTreeNode) tree.getModel().getRoot(); |
50 | rootNode.setUserObject(dir); | 50 | rootNode.setUserObject(dir); |
51 | updateNode(rootNode); | 51 | updateNode(rootNode); |
52 | tree.updateUI(); | 52 | tree.updateUI(); |
53 | } | 53 | } |
54 | |||
54 | private void updateNode(Object object) { | 55 | private void updateNode(Object object) { |
55 | DefaultMutableTreeNode node = (DefaultMutableTreeNode) object; | 56 | DefaultMutableTreeNode node = (DefaultMutableTreeNode) object; |
56 | for (int i = 0; i < node.getChildCount(); i++) { | 57 | for (int i = 0; i < node.getChildCount(); i++) { |
57 | DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) node.getChildAt(i); | 58 | DefaultMutableTreeNode node2 = |
59 | (DefaultMutableTreeNode) node.getChildAt(i); | ||
58 | FileObject fileObject = (FileObject) node2.getUserObject(); | 60 | FileObject fileObject = (FileObject) node2.getUserObject(); |
59 | if (!fileObject.isUpdated()) { | 61 | if (!fileObject.isUpdated()) { |
60 | fileObject.setUpdated(true); | 62 | fileObject.setUpdated(true); |
@@ -65,27 +67,30 @@ public class MyTree extends JPanel { | |||
65 | } | 67 | } |
66 | } | 68 | } |
67 | } | 69 | } |
68 | 70 | ||
69 | private void jTreeValueChanged(TreeSelectionEvent evt) { | 71 | private void jTreeValueChanged(TreeSelectionEvent evt) { |
70 | DefaultMutableTreeNode selectedNode=(DefaultMutableTreeNode) tree.getLastSelectedPathComponent();//返回最后选定的节点 | 72 | DefaultMutableTreeNode selectedNode = |
71 | if(selectedNode!=null && selectedNode.isLeaf()){ | 73 | (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();//返回最后选定的节点 |
72 | result = ((FileObject) selectedNode.getUserObject()).file; | 74 | if (selectedNode != null && selectedNode.isLeaf()) { |
73 | jf.src = result.getAbsolutePath(); | 75 | result = ((FileObject) selectedNode.getUserObject()).file; |
74 | if (!jf.centerTabPanel.isSelectTabComponents("代码")) { | 76 | jf.src = result.getAbsolutePath(); |
75 | jf.centerTabPanel.addTab("代码", jf.testCode); | 77 | if (!jf.centerTabPanel.isSelectTabComponents("代码")) { |
76 | jf.centerTabPanel.isSelectTabComponents("代码"); | 78 | jf.centerTabPanel.addTab("代码", jf.testCode); |
77 | } | 79 | jf.centerTabPanel.isSelectTabComponents("代码"); |
78 | textCode.setText(FileTools.readFile(result)); | 80 | } |
81 | textCode.setText(FileTools.readFile(result)); | ||
79 | } | 82 | } |
80 | } | 83 | } |
81 | 84 | ||
82 | public MutableTreeNode createNode(File dir) { | 85 | public MutableTreeNode createNode(File dir) { |
83 | DefaultMutableTreeNode node = new DefaultMutableTreeNode(new FileObject(dir)); | 86 | DefaultMutableTreeNode node = |
87 | new DefaultMutableTreeNode(new FileObject(dir)); | ||
84 | if (dir.isDirectory()) { | 88 | if (dir.isDirectory()) { |
85 | addSubFile(node, dir); | 89 | addSubFile(node, dir); |
86 | } | 90 | } |
87 | return node; | 91 | return node; |
88 | } | 92 | } |
93 | |||
89 | private void addSubFile(DefaultMutableTreeNode node, File dir) { | 94 | private void addSubFile(DefaultMutableTreeNode node, File dir) { |
90 | File[] files = dir.listFiles(); | 95 | File[] files = dir.listFiles(); |
91 | if (files != null) { | 96 | if (files != null) { |
@@ -94,29 +99,37 @@ public class MyTree extends JPanel { | |||
94 | } | 99 | } |
95 | } | 100 | } |
96 | } | 101 | } |
102 | |||
97 | public class TreeExpansionAction implements TreeExpansionListener { | 103 | public class TreeExpansionAction implements TreeExpansionListener { |
98 | public void treeExpanded(TreeExpansionEvent event) { | 104 | public void treeExpanded(TreeExpansionEvent event) { |
99 | updateNode(event.getPath().getLastPathComponent()); | 105 | updateNode(event.getPath().getLastPathComponent()); |
100 | } | 106 | } |
107 | |||
101 | public void treeCollapsed(TreeExpansionEvent event) { | 108 | public void treeCollapsed(TreeExpansionEvent event) { |
102 | 109 | ||
103 | } | 110 | } |
104 | } | 111 | } |
112 | |||
105 | public class FileObject { | 113 | public class FileObject { |
106 | private File file; | 114 | private final File file; |
107 | private boolean updated; | 115 | private boolean updated; |
116 | |||
108 | public FileObject(File file) { | 117 | public FileObject(File file) { |
109 | this.file = file; | 118 | this.file = file; |
110 | } | 119 | } |
120 | |||
111 | public File getFile() { | 121 | public File getFile() { |
112 | return file; | 122 | return file; |
113 | } | 123 | } |
124 | |||
114 | public boolean isUpdated() { | 125 | public boolean isUpdated() { |
115 | return updated; | 126 | return updated; |
116 | } | 127 | } |
128 | |||
117 | public void setUpdated(boolean updated) { | 129 | public void setUpdated(boolean updated) { |
118 | this.updated = updated; | 130 | this.updated = updated; |
119 | } | 131 | } |
132 | |||
120 | public String toString() { | 133 | public String toString() { |
121 | return file.getName(); | 134 | return file.getName(); |
122 | } | 135 | } |