public ProjectNode(ProjectEntry project, IconProvider iconProvider) : base(project.Project, project.FilePath.ParentDirectory, iconProvider) { ProjectEntry = project; ProjectEntry.LoadComplete += project_LoadComplete; var solution = ProjectEntry.GetRoot() as Solution; if (solution != null) { solution.Settings.StartupProjects.InsertedItem += StartupProjects_InsertedItem; solution.Settings.StartupProjects.RemovedItem += StartupProjects_RemovedItem; } if (project.HasProject) { ImageIndex = SelectedImageIndex = (_iconProvider = iconProvider).GetImageIndex(project); _propertiesNode = new PropertiesNode(iconProvider); if (project.Project is IFileReferenceProvider) _referencesNode = new ReferencesNode(project.Project as IFileReferenceProvider, iconProvider); } if (project.IsLoaded) Populate(); }
private SolutionFolder ReadProjectEntry(Solution parent, Match match) { string path = match.Groups["HintPath"].Value; SolutionFolder entry; Guid typeID = Guid.Parse(match.Groups["TypeGuid"].Value); if (typeID == SolutionFolder.SolutionFolderGuid) { entry = new SolutionFolder(); } else { entry = new ProjectEntry(); } entry.TypeGuid = typeID; entry.Name = match.Groups["Name"].Value; entry.FilePath = new FilePath(parent.FilePath.ParentDirectory.FullPath, match.Groups["HintPath"].Value); entry.ObjectGuid = Guid.Parse(match.Groups["ProjectGuid"].Value); ReadNextLine(); Match sectionMatch; while (IsAtSection(out sectionMatch)) { entry.Sections.Add(ReadSection(sectionMatch)); ReadNextLine(); } if (_currentLine != "EndProject") { ThrowSyntaxError("Expected \"EndProject\" keyword."); } return(entry); }
private SolutionFolder ReadProjectEntry(Solution parent, Match match) { string path = match.Groups["HintPath"].Value; SolutionFolder entry; Guid typeID = Guid.Parse(match.Groups["TypeGuid"].Value); if (typeID == SolutionFolder.SolutionFolderGuid) { entry = new SolutionFolder(); } else { entry = new ProjectEntry(); } entry.TypeGuid = typeID; entry.Name = match.Groups["Name"].Value; entry.FilePath = new FilePath(parent.FilePath.ParentDirectory.FullPath, match.Groups["HintPath"].Value); entry.ObjectGuid = Guid.Parse(match.Groups["ProjectGuid"].Value); ReadNextLine(); Match sectionMatch; while (IsAtSection(out sectionMatch)) { entry.Sections.Add(ReadSection(sectionMatch)); ReadNextLine(); } if (_currentLine != "EndProject") ThrowSyntaxError("Expected \"EndProject\" keyword."); return entry; }