public int Compare(object aLHS, object aRHS) { CodeTreeNode lhsNode = (CodeTreeNode)aLHS; CodeTreeNode rhsNode = (CodeTreeNode)aRHS; return(rhsNode.attachedSourceFile.includeCount.CompareTo(lhsNode.attachedSourceFile.includeCount)); }
private void treeView_AfterSelect(object sender, TreeViewEventArgs e) { // 中身を表示 CodeTreeNode node = (CodeTreeNode)e.Node; codeFileContentTextBox.Clear(); codeFileContentTextBox.Text = System.IO.File.ReadAllText(node.attachedSourceFile.fileInfo.FullName, Encoding.GetEncoding("SJIS")); }
private void treeView_BeforeExpand(object sender, TreeViewCancelEventArgs e) { // 孫ノードの作成 CodeTreeNode expandNode = (CodeTreeNode)e.Node; foreach (CodeTreeNode node in expandNode.Nodes) { node.addChildsIfNeccesary(); } }
public void addChildsIfNeccesary() { if (cantAddChilds) {// 子供は追加できない return; } if (this.Nodes.Count != 0) {// 追加済み return; } // ノードを作成する ArrayList nodes = new ArrayList(); if (mode == CodeTreeForm.Mode.ReferencedTree) {// 依存ツリー foreach (CodeFile sourceFile in attachedSourceFile.referencedCodeFiles.GetCodeFiles()) { if (sourceFile.IsIgnore()) {// 無視ファイル continue; } CodeTreeNode newNode = new CodeTreeNode( sourceFile , findParentNodeSameSourceFile(this, sourceFile) , mode ); nodes.Add(newNode); } // includeCountでソートする nodes.Sort(new DependTreeNodeComparer()); } else {// インクルードツリー foreach (CodeFile sourceFile in attachedSourceFile.includeCodeFiles.GetCodeFiles()) { CodeTreeNode newNode = new CodeTreeNode( sourceFile , findParentNodeSameSourceFile(this, sourceFile) , mode ); nodes.Add(newNode); } } // ノードを追加する foreach (CodeTreeNode node in nodes) { this.Nodes.Add(node); } }
private void showExplorerButton_Click(object sender, EventArgs e) { // 選択されているかチェック if (treeView.SelectedNode == null) { return; } // エクスプローラに表示 CodeTreeNode node = (CodeTreeNode)treeView.SelectedNode; Utility.showExplorer(node.attachedSourceFile); }
private void createTreeFormIfPossible(CodeTreeForm.Mode aMode) { // 選択されているかチェック if (treeView.SelectedNode == null) { return; } // ウインドウを作成 CodeTreeNode node = (CodeTreeNode)treeView.SelectedNode; CodeTreeForm form = new CodeTreeForm(analyzer, node.attachedSourceFile, aMode); form.Show(); }
private void DependTreeForm_Load(object sender, EventArgs e) { // 名前の変更 this.Text = mode == Mode.ReferencedTree ? "<依存ツリー>" : "<インクルードツリー>"; this.Text += " " + rootSourceFile.fileInfo.FullName + " - DependAnalyzer"; // ツリーの生成 CodeTreeNode node = new CodeTreeNode(rootSourceFile, false, mode); treeView.Nodes.Add(node); node.addChildsIfNeccesary(); }
private bool findParentNodeSameSourceFile(TreeNode aNode, CodeFile aSourceFile) { if (aNode == null) { return(false); } CodeTreeNode node = (CodeTreeNode)aNode; if (node.attachedSourceFile == aSourceFile) { return(true); } return(findParentNodeSameSourceFile(node.Parent, aSourceFile)); }