예제 #1
0
        public int Compare(object aLHS, object aRHS)
        {
            CodeTreeNode lhsNode = (CodeTreeNode)aLHS;
            CodeTreeNode rhsNode = (CodeTreeNode)aRHS;

            return(rhsNode.attachedSourceFile.includeCount.CompareTo(lhsNode.attachedSourceFile.includeCount));
        }
예제 #2
0
        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"));
        }
예제 #3
0
        private void treeView_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            // 孫ノードの作成
            CodeTreeNode expandNode = (CodeTreeNode)e.Node;

            foreach (CodeTreeNode node in expandNode.Nodes)
            {
                node.addChildsIfNeccesary();
            }
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        private void showExplorerButton_Click(object sender, EventArgs e)
        {
            // 選択されているかチェック
            if (treeView.SelectedNode == null)
            {
                return;
            }

            // エクスプローラに表示
            CodeTreeNode node = (CodeTreeNode)treeView.SelectedNode;

            Utility.showExplorer(node.attachedSourceFile);
        }
예제 #6
0
        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();
        }
예제 #7
0
        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();
        }
예제 #8
0
        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));
        }