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