public override void Refresh() { if (_solution == null || _solutionNode == null) { return; } if (InvokeRequired) { BeginInvoke(new Action(Refresh)); return; } base.Refresh(); ProjectTreeNode projectTreeNode; _solutionNode.Text = _solution.Name; foreach (CrcsProject proj in _solution.Projects) { projectTreeNode = proj.TreeNode; if (projectTreeNode == null) { projectTreeNode = new ProjectTreeNode(proj); _nodes.Add(projectTreeNode); var propNode = new TreeNode("Properties", 6, 6) { Tag = proj }; projectTreeNode.Nodes.Add(propNode); _solutionNode.Nodes.Add(projectTreeNode); proj.TreeNode = projectTreeNode; } projectTreeNode.RefreshIcon(); RefreshProjectNode(projectTreeNode); } foreach (string missingProj in _solution.MissingProjects) { if (ProjectNodes.FirstOrDefault(x => x.FileSystemPath == missingProj) != null) { continue; } projectTreeNode = new ProjectTreeNode(new MissingItem(missingProj, true, null), _iconManager); _nodes.Add(projectTreeNode); _solutionNode.Nodes.Add(projectTreeNode); } if (!_solutionNode.IsExpanded) { _solutionNode.Expand(); } }
public void ExpandTreeNodes(IEnumerable <string> fileSystemPaths) { if (fileSystemPaths == null) { return; } foreach (string fileSystemPath in fileSystemPaths) { string path = fileSystemPath; ProjectTreeNode treeNode = _nodes.FirstOrDefault(x => x.FileSystemPath.Equals(path, StringComparison.OrdinalIgnoreCase)); if (treeNode == null) { continue; } treeNode.Expand(); } }