Пример #1
0
        private List <Utility.SolutionUtility.SolutionStructure.Node> getTreeViewProjectNodes()
        {
            List <Utility.SolutionUtility.SolutionStructure.Node> projectNodes = new List <Utility.SolutionUtility.SolutionStructure.Node>();

            // Stack<TreeNode> treeNodes = new Stack<TreeNode>();
            Stack <Utility.SolutionUtility.SolutionStructure.Node> nodeStack = new Stack <Utility.SolutionUtility.SolutionStructure.Node>();

            foreach (Utility.SolutionUtility.SolutionStructure.Node node in _projectStructure.Nodes)
            {
                nodeStack.Push(node);
            }

            while (nodeStack.Count > 0)
            {
                Utility.SolutionUtility.SolutionStructure.Node node = nodeStack.Pop();

                if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.PROJECT)
                {
                    projectNodes.Add(node);
                }
                else if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.FOLDER)
                {
                    Utility.SolutionUtility.SolutionStructure.FolderNode folderNode = node as Utility.SolutionUtility.SolutionStructure.FolderNode;
                    foreach (Utility.SolutionUtility.SolutionStructure.Node subNode in folderNode.SubNodes)
                    {
                        nodeStack.Push(subNode);
                    }
                }
            }

            return(projectNodes);
        }
Пример #2
0
        static public List <EnvDTE.Project> GetSolutionProjectList(DTE dte)
        {
            List <EnvDTE.Project> solutionProjects = new List <EnvDTE.Project>();

            try
            {
                SolutionStructure solutionStructure = GetProjectStructureRecursive(dte);

                Stack <SolutionStructure.Node> nodeStack = new Stack <Utility.SolutionUtility.SolutionStructure.Node>();
                foreach (SolutionStructure.Node node in solutionStructure.Nodes)
                {
                    nodeStack.Push(node);
                }

                while (nodeStack.Count > 0)
                {
                    Utility.SolutionUtility.SolutionStructure.Node node = nodeStack.Pop();

                    string name = node.Name;

                    if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.PROJECT)
                    {
                        solutionProjects.Add(node.Project);
                    }
                    else if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.FOLDER)
                    {
                        Utility.SolutionUtility.SolutionStructure.FolderNode folderNode = node as Utility.SolutionUtility.SolutionStructure.FolderNode;
                        foreach (Utility.SolutionUtility.SolutionStructure.Node subNode in folderNode.SubNodes)
                        {
                            nodeStack.Push(subNode);
                        }
                    }
                }

                return(solutionProjects);
            }
            catch (Exception e)
            {
                Logging.Logging.LogError("Exception: " + e.Message);

                return(new List <EnvDTE.Project>());
            }
        }
Пример #3
0
        private TreeNode[] GetSubNodes(Utility.SolutionUtility.SolutionStructure.FolderNode folderNode)
        {
            List <TreeNode> result = new List <TreeNode>();

            foreach (Utility.SolutionUtility.SolutionStructure.Node node in folderNode.SubNodes)
            {
                if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.PROJECT)
                {
                    TreeNode treeNode = new TreeNode(node.Name);
                    node.UserData = treeNode;
                    result.Add(treeNode);
                }
                else if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.FOLDER)
                {
                    TreeNode[] subNodes = GetSubNodes(node as Utility.SolutionUtility.SolutionStructure.FolderNode);
                    TreeNode   treeNode = new TreeNode(node.Name, subNodes);
                    node.UserData = treeNode;
                    result.Add(treeNode);
                }
            }

            return(result.ToArray());
        }
Пример #4
0
        private List <EnvDTE.Project> GetTreeViewProjectItems()
        {
            List <EnvDTE.Project> solutionProjects = new List <EnvDTE.Project>();

            // Stack<TreeNode> treeNodes = new Stack<TreeNode>();
            Stack <Utility.SolutionUtility.SolutionStructure.Node> nodeStack = new Stack <Utility.SolutionUtility.SolutionStructure.Node>();

            foreach (Utility.SolutionUtility.SolutionStructure.Node node in _projectStructure.Nodes)
            {
                nodeStack.Push(node);
            }

            while (nodeStack.Count > 0)
            {
                Utility.SolutionUtility.SolutionStructure.Node node = nodeStack.Pop();

                bool include = (node.UserData as TreeNode).Checked;

                string name = node.Name;

                if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.PROJECT &&
                    (node.UserData as TreeNode).Checked == true)
                {
                    solutionProjects.Add(node.Project);
                }
                else if (node.GetNodeType() == Utility.SolutionUtility.SolutionStructure.Node.NodeType.FOLDER)
                {
                    Utility.SolutionUtility.SolutionStructure.FolderNode folderNode = node as Utility.SolutionUtility.SolutionStructure.FolderNode;
                    foreach (Utility.SolutionUtility.SolutionStructure.Node subNode in folderNode.SubNodes)
                    {
                        nodeStack.Push(subNode);
                    }
                }
            }

            return(solutionProjects);
        }