Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
        }