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); }
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>()); } }
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); }