Example #1
0
        /// <summary>
        /// Launch the Project Properties Editor (properties pages)
        /// </summary>
        /// <returns>If we succeeded or not</returns>
        public override bool EditComponent(ITypeDescriptorContext context, object component)
        {
            if (component is ProjectNodeProperties)
            {
                IVsPropertyPageFrame propertyPageFrame = (IVsPropertyPageFrame)serviceProvider.GetService((typeof(SVsPropertyPageFrame)));

                int hr = propertyPageFrame.ShowFrame(Guid.Empty);
                if (ErrorHandler.Succeeded(hr))
                {
                    return(true);
                }
                else
                {
                    propertyPageFrame.ReportError(hr);
                }
            }

            return(false);
        }
Example #2
0
        /// <summary>
        /// Apply Changes on project node.
        /// </summary>
        /// <returns>E_INVALIDARG if internal ProjectMgr is null, otherwise applies changes and return S_OK.</returns>
        protected override int ApplyChanges()
        {
            if (this.ProjectMgr == null)
            {
                return(VSConstants.E_INVALIDARG);
            }

            IVsPropertyPageFrame propertyPageFrame = (IVsPropertyPageFrame)this.ProjectMgr.Site.GetService((typeof(SVsPropertyPageFrame)));

            Assumes.Present(propertyPageFrame);
            bool reloadRequired = this.ProjectMgr.TargetFrameworkMoniker != this.targetFrameworkMoniker;

            this.ProjectMgr.SetProjectProperty(nameof(AssemblyName), this.assemblyName);
            this.ProjectMgr.SetProjectProperty(nameof(OutputType), this.outputType.ToString());
            this.ProjectMgr.SetProjectProperty(nameof(RootNamespace), this.rootNamespace);
            this.ProjectMgr.SetProjectProperty(nameof(StartupObject), this.startupObject);
            this.ProjectMgr.SetProjectProperty(nameof(ApplicationIcon), this.applicationIcon);
            this.ProjectMgr.SetProjectProperty(nameof(Dialect), this.dialect.ToString());
            this.ProjectMgr.SetProjectProperty(nameof(VulcanCompatibleResources), this.vulcanCompatibleResources.ToString());
            this.ProjectMgr.SetProjectProperty(nameof(NoWin32Manifest), this.noWin32Manifest.ToString());
            // reset properties for projectnode
            ((XSharpProjectNode)this.ProjectMgr).OutputFile    = null;
            ((XSharpProjectNode)this.ProjectMgr).RootNameSpace = this.rootNamespace;
            if (reloadRequired)
            {
                if (MessageBox.Show(SR.GetString(SR.ReloadPromptOnTargetFxChanged), SR.GetString(SR.ReloadPromptOnTargetFxChangedCaption), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    this.ProjectMgr.TargetFrameworkMoniker = this.targetFrameworkMoniker;
                }
            }

            this.IsDirty = false;

            if (reloadRequired)
            {
                // This prevents the property page from displaying bad data from the zombied (unloaded) project
                propertyPageFrame.HideFrame();
                propertyPageFrame.ShowFrame(this.GetType().GUID);
            }

            return(VSConstants.S_OK);
        }
Example #3
0
        /// <summary>
        /// Apply Changes on project node.
        /// </summary>
        /// <returns>E_INVALIDARG if internal ProjectMgr is null, otherwise applies changes and return S_OK.</returns>
        protected override int ApplyChanges()
        {
            if (this.ProjectMgr == null)
            {
                return(VSConstants.E_INVALIDARG);
            }

            IVsPropertyPageFrame propertyPageFrame = (IVsPropertyPageFrame)this.ProjectMgr.Site.GetService((typeof(SVsPropertyPageFrame)));
            bool reloadRequired = this.ProjectMgr.TargetFrameworkMoniker != this.targetFrameworkMoniker;

            this.ProjectMgr.SetProjectProperty("AssemblyName", this.assemblyName);
            this.ProjectMgr.SetProjectProperty("OutputType", this.outputType.ToString());
            this.ProjectMgr.SetProjectProperty("RootNamespace", this.defaultNamespace);
            this.ProjectMgr.SetProjectProperty("StartupObject", this.startupObject);
            this.ProjectMgr.SetProjectProperty("ApplicationIcon", this.applicationIcon);
            this.ProjectMgr.SetProjectProperty("URL", "URL");
            this.ProjectMgr.SetProjectProperty("WebSiteType", "WebSiteType");

            if (reloadRequired)
            {
                if (MessageBox.Show(SR.GetString(SR.ReloadPromptOnTargetFxChanged), SR.GetString(SR.ReloadPromptOnTargetFxChangedCaption), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    this.ProjectMgr.TargetFrameworkMoniker = this.targetFrameworkMoniker;
                }
            }

            this.IsDirty = false;

            if (reloadRequired)
            {
                // This prevents the property page from displaying bad data from the zombied (unloaded) project
                propertyPageFrame.HideFrame();
                propertyPageFrame.ShowFrame(this.GetType().GUID);
            }

            return(VSConstants.S_OK);
        }
        /// <summary>
        /// Apply Changes on project node.
        /// </summary>
        /// <returns>E_INVALIDARG if internal ProjectManager is null, otherwise applies changes and return S_OK.</returns>
        protected override int ApplyChanges()
        {
            if (this.ProjectManager == null)
            {
                return(VSConstants.E_INVALIDARG);
            }

            IVsPropertyPageFrame propertyPageFrame = (IVsPropertyPageFrame)this.ProjectManager.Site.GetService((typeof(SVsPropertyPageFrame)));
            bool reloadRequired = this.ProjectManager.TargetFrameworkMoniker != this.targetFrameworkMoniker;

            this.ProjectManager.SetProjectProperty(GeneralPropertyPageTag.AssemblyName.ToString(), _PersistStorageType.PST_PROJECT_FILE, this.assemblyName);
            this.ProjectManager.SetProjectProperty(GeneralPropertyPageTag.OutputType.ToString(), _PersistStorageType.PST_PROJECT_FILE, this.outputType.ToString());
            this.ProjectManager.SetProjectProperty(GeneralPropertyPageTag.RootNamespace.ToString(), _PersistStorageType.PST_PROJECT_FILE, this.defaultNamespace);
            this.ProjectManager.SetProjectProperty(GeneralPropertyPageTag.StartupObject.ToString(), _PersistStorageType.PST_PROJECT_FILE, this.startupObject);
            this.ProjectManager.SetProjectProperty(GeneralPropertyPageTag.ApplicationIcon.ToString(), _PersistStorageType.PST_PROJECT_FILE, this.applicationIcon);

            if (reloadRequired)
            {
                // Make sure the user understands that reloading the project is necessary, but don't interrupt unit tests.
                if (UIThread.IsUnitTest || MessageBox.Show(Resources.GetString(Resources.ReloadPromptOnTargetFxChanged), Resources.GetString(Resources.ReloadPromptOnTargetFxChangedCaption), MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    this.ProjectManager.TargetFrameworkMoniker = this.targetFrameworkMoniker;
                }
            }

            this.IsDirty = false;

            if (reloadRequired && propertyPageFrame != null)
            {
                // This prevents the property page from displaying bad data from the zombied (unloaded) project
                propertyPageFrame.HideFrame();
                propertyPageFrame.ShowFrame(this.GetType().GUID);
            }

            return(VSConstants.S_OK);
        }