Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebParts / DeclarativeCatalogPart.cs / 1 / DeclarativeCatalogPart.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.Security.Permissions; using System.Web.Security; using System.Web.Util; ////// [ Designer("System.Web.UI.Design.WebControls.WebParts.DeclarativeCatalogPartDesigner, " + AssemblyRef.SystemDesign), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class DeclarativeCatalogPart : CatalogPart { private ITemplate _webPartsTemplate; private WebPartDescriptionCollection _descriptions; private string _webPartsListUserControlPath; [ WebSysDefaultValue(SR.DeclarativeCatalogPart_PartTitle), ] public override string Title { get { string s = (string)ViewState["Title"]; return (s != null) ? s : SR.GetString(SR.DeclarativeCatalogPart_PartTitle); } set { ViewState["Title"] = value; } } [ DefaultValue(""), Editor("System.Web.UI.Design.UserControlFileEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), Themeable(false), UrlProperty(), WebCategory("Behavior"), WebSysDescription(SR.DeclarativeCatlaogPart_WebPartsListUserControlPath), ] public string WebPartsListUserControlPath { get { return (_webPartsListUserControlPath != null) ? _webPartsListUserControlPath : String.Empty; } set { _webPartsListUserControlPath = value; // Reset the collection of available web parts so it will be recreated _descriptions = null; } } ////// I don't know any reason this should be a single-instance template. /// [ Browsable(false), DefaultValue(null), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(DeclarativeCatalogPart)), // NOT single-instance template for now ] public ITemplate WebPartsTemplate { get { return _webPartsTemplate; } set { _webPartsTemplate = value; // Reset the collection of available web parts so it will be recreated _descriptions = null; } } private void AddControlToDescriptions(Control control, ArrayList descriptions) { WebPart webPart = control as WebPart; if ((webPart == null) && !(control is LiteralControl)) { // Fix for DesignMode if (WebPartManager != null) { webPart = WebPartManager.CreateWebPart(control); } else { webPart = WebPartManager.CreateWebPartStatic(control); } } // Fix for DesignMode if (webPart != null && (WebPartManager == null || WebPartManager.IsAuthorized(webPart))) { WebPartDescription description = new WebPartDescription(webPart); descriptions.Add(description); } } public override WebPartDescriptionCollection GetAvailableWebPartDescriptions() { if (_descriptions == null) { LoadAvailableWebParts(); } return _descriptions; } public override WebPart GetWebPart(WebPartDescription description) { if (description == null) { throw new ArgumentNullException("description"); } WebPartDescriptionCollection webPartDescriptions = GetAvailableWebPartDescriptions(); if (!webPartDescriptions.Contains(description)) { throw new ArgumentException(SR.GetString(SR.CatalogPart_UnknownDescription), "description"); } return description.WebPart; } private void LoadAvailableWebParts() { ArrayList descriptions = new ArrayList(); if (WebPartsTemplate != null) { Control container = new NonParentingControl(); WebPartsTemplate.InstantiateIn(container); if (container.HasControls()) { // Copy container.Controls to a temporary array, since adding the control to the // descriptions may cause it to be reparented to a GenericWebPart, which would // modify the container.Controls collection. Control[] controls = new Control[container.Controls.Count]; container.Controls.CopyTo(controls, 0); foreach (Control control in controls) { AddControlToDescriptions(control, descriptions); } } } string webPartsListUserControlPath = WebPartsListUserControlPath; if (!String.IsNullOrEmpty(webPartsListUserControlPath) && !DesignMode) { // Page.LoadControl() throws a null ref exception at design-time Control userControl = Page.LoadControl(webPartsListUserControlPath); if (userControl != null && userControl.HasControls()) { // Copy userControl.Controls to a temporary array, since adding the control to the // descriptions may cause it to be reparented to a GenericWebPart, which would // modify the userControl.Controls collection. Control[] controls = new Control[userControl.Controls.Count]; userControl.Controls.CopyTo(controls, 0); foreach (Control control in controls) { AddControlToDescriptions(control, descriptions); } } } _descriptions = new WebPartDescriptionCollection(descriptions); } // Override Render to render nothing by default, since the CatalogPartChrome renders the // AvailableWebParts. A CatalogPart only needs to render something if it wants // additional rendering above the AvailableWebParts. protected internal override void Render(HtmlTextWriter writer) { } #region Overriden to hide in the designer (VSWhidbey 353577) [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string AccessKey { get { return base.AccessKey; } set { base.AccessKey = value; } } #if ORCAS [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool AllowPaginate { get { return base.AllowPaginate; } set { base.AllowPaginate = value; } } #endif [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color BackColor { get { return base.BackColor; } set { base.BackColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string BackImageUrl { get { return base.BackImageUrl; } set { base.BackImageUrl = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color BorderColor { get { return base.BorderColor; } set { base.BorderColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override BorderStyle BorderStyle { get { return base.BorderStyle; } set { base.BorderStyle = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit BorderWidth { get { return base.BorderWidth; } set { base.BorderWidth = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false), CssClassProperty()] public override string CssClass { get { return base.CssClass; } set { base.CssClass = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string DefaultButton { get { return base.DefaultButton; } set { base.DefaultButton = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override ContentDirection Direction { get { return base.Direction; } set { base.Direction = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Enabled { get { return base.Enabled; } set { base.Enabled = value; } } [Browsable(false), DefaultValue(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool EnableTheming { get { return false; } set { throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name)); } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override FontInfo Font { get { return base.Font; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color ForeColor { get { return base.ForeColor; } set { base.ForeColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string GroupingText { get { return base.GroupingText; } set { base.GroupingText = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit Height { get { return base.Height; } set { base.Height = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override HorizontalAlign HorizontalAlign { get { return base.HorizontalAlign; } set { base.HorizontalAlign = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override ScrollBars ScrollBars { get { return base.ScrollBars; } set { base.ScrollBars = value; } } [Browsable(false), DefaultValue(""), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string SkinID { get { return String.Empty; } set { throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name)); } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override short TabIndex { get { return base.TabIndex; } set { base.TabIndex = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string ToolTip { get { return base.ToolTip; } set { base.ToolTip = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Visible { get { return base.Visible; } set { base.Visible = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit Width { get { return base.Width; } set { base.Width = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Wrap { get { return base.Wrap; } set { base.Wrap = value; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.Security.Permissions; using System.Web.Security; using System.Web.Util; ////// [ Designer("System.Web.UI.Design.WebControls.WebParts.DeclarativeCatalogPartDesigner, " + AssemblyRef.SystemDesign), ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class DeclarativeCatalogPart : CatalogPart { private ITemplate _webPartsTemplate; private WebPartDescriptionCollection _descriptions; private string _webPartsListUserControlPath; [ WebSysDefaultValue(SR.DeclarativeCatalogPart_PartTitle), ] public override string Title { get { string s = (string)ViewState["Title"]; return (s != null) ? s : SR.GetString(SR.DeclarativeCatalogPart_PartTitle); } set { ViewState["Title"] = value; } } [ DefaultValue(""), Editor("System.Web.UI.Design.UserControlFileEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), Themeable(false), UrlProperty(), WebCategory("Behavior"), WebSysDescription(SR.DeclarativeCatlaogPart_WebPartsListUserControlPath), ] public string WebPartsListUserControlPath { get { return (_webPartsListUserControlPath != null) ? _webPartsListUserControlPath : String.Empty; } set { _webPartsListUserControlPath = value; // Reset the collection of available web parts so it will be recreated _descriptions = null; } } ////// I don't know any reason this should be a single-instance template. /// [ Browsable(false), DefaultValue(null), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(DeclarativeCatalogPart)), // NOT single-instance template for now ] public ITemplate WebPartsTemplate { get { return _webPartsTemplate; } set { _webPartsTemplate = value; // Reset the collection of available web parts so it will be recreated _descriptions = null; } } private void AddControlToDescriptions(Control control, ArrayList descriptions) { WebPart webPart = control as WebPart; if ((webPart == null) && !(control is LiteralControl)) { // Fix for DesignMode if (WebPartManager != null) { webPart = WebPartManager.CreateWebPart(control); } else { webPart = WebPartManager.CreateWebPartStatic(control); } } // Fix for DesignMode if (webPart != null && (WebPartManager == null || WebPartManager.IsAuthorized(webPart))) { WebPartDescription description = new WebPartDescription(webPart); descriptions.Add(description); } } public override WebPartDescriptionCollection GetAvailableWebPartDescriptions() { if (_descriptions == null) { LoadAvailableWebParts(); } return _descriptions; } public override WebPart GetWebPart(WebPartDescription description) { if (description == null) { throw new ArgumentNullException("description"); } WebPartDescriptionCollection webPartDescriptions = GetAvailableWebPartDescriptions(); if (!webPartDescriptions.Contains(description)) { throw new ArgumentException(SR.GetString(SR.CatalogPart_UnknownDescription), "description"); } return description.WebPart; } private void LoadAvailableWebParts() { ArrayList descriptions = new ArrayList(); if (WebPartsTemplate != null) { Control container = new NonParentingControl(); WebPartsTemplate.InstantiateIn(container); if (container.HasControls()) { // Copy container.Controls to a temporary array, since adding the control to the // descriptions may cause it to be reparented to a GenericWebPart, which would // modify the container.Controls collection. Control[] controls = new Control[container.Controls.Count]; container.Controls.CopyTo(controls, 0); foreach (Control control in controls) { AddControlToDescriptions(control, descriptions); } } } string webPartsListUserControlPath = WebPartsListUserControlPath; if (!String.IsNullOrEmpty(webPartsListUserControlPath) && !DesignMode) { // Page.LoadControl() throws a null ref exception at design-time Control userControl = Page.LoadControl(webPartsListUserControlPath); if (userControl != null && userControl.HasControls()) { // Copy userControl.Controls to a temporary array, since adding the control to the // descriptions may cause it to be reparented to a GenericWebPart, which would // modify the userControl.Controls collection. Control[] controls = new Control[userControl.Controls.Count]; userControl.Controls.CopyTo(controls, 0); foreach (Control control in controls) { AddControlToDescriptions(control, descriptions); } } } _descriptions = new WebPartDescriptionCollection(descriptions); } // Override Render to render nothing by default, since the CatalogPartChrome renders the // AvailableWebParts. A CatalogPart only needs to render something if it wants // additional rendering above the AvailableWebParts. protected internal override void Render(HtmlTextWriter writer) { } #region Overriden to hide in the designer (VSWhidbey 353577) [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string AccessKey { get { return base.AccessKey; } set { base.AccessKey = value; } } #if ORCAS [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool AllowPaginate { get { return base.AllowPaginate; } set { base.AllowPaginate = value; } } #endif [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color BackColor { get { return base.BackColor; } set { base.BackColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string BackImageUrl { get { return base.BackImageUrl; } set { base.BackImageUrl = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color BorderColor { get { return base.BorderColor; } set { base.BorderColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override BorderStyle BorderStyle { get { return base.BorderStyle; } set { base.BorderStyle = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit BorderWidth { get { return base.BorderWidth; } set { base.BorderWidth = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false), CssClassProperty()] public override string CssClass { get { return base.CssClass; } set { base.CssClass = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string DefaultButton { get { return base.DefaultButton; } set { base.DefaultButton = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override ContentDirection Direction { get { return base.Direction; } set { base.Direction = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Enabled { get { return base.Enabled; } set { base.Enabled = value; } } [Browsable(false), DefaultValue(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool EnableTheming { get { return false; } set { throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name)); } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override FontInfo Font { get { return base.Font; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Color ForeColor { get { return base.ForeColor; } set { base.ForeColor = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string GroupingText { get { return base.GroupingText; } set { base.GroupingText = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit Height { get { return base.Height; } set { base.Height = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override HorizontalAlign HorizontalAlign { get { return base.HorizontalAlign; } set { base.HorizontalAlign = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override ScrollBars ScrollBars { get { return base.ScrollBars; } set { base.ScrollBars = value; } } [Browsable(false), DefaultValue(""), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string SkinID { get { return String.Empty; } set { throw new NotSupportedException(SR.GetString(SR.NoThemingSupport, this.GetType().Name)); } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override short TabIndex { get { return base.TabIndex; } set { base.TabIndex = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override string ToolTip { get { return base.ToolTip; } set { base.ToolTip = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Visible { get { return base.Visible; } set { base.Visible = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override Unit Width { get { return base.Width; } set { base.Width = value; } } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never), Themeable(false)] public override bool Wrap { get { return base.Wrap; } set { base.Wrap = value; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HotSpot.cs
- DynamicValueConverter.cs
- AuthenticationService.cs
- ExceptionHandler.cs
- XmlSchemaComplexContentRestriction.cs
- M3DUtil.cs
- XmlDataDocument.cs
- DocobjHost.cs
- SmtpClient.cs
- InstanceLockQueryResult.cs
- RefreshPropertiesAttribute.cs
- Subtree.cs
- mediaeventshelper.cs
- ImageInfo.cs
- SqlInternalConnection.cs
- ProfileParameter.cs
- BaseValidatorDesigner.cs
- XmlTypeAttribute.cs
- SettingsProviderCollection.cs
- CorrelationToken.cs
- SystemIcmpV4Statistics.cs
- TextEndOfSegment.cs
- Encoder.cs
- ParameterCollectionEditorForm.cs
- RtfToken.cs
- AppDomainGrammarProxy.cs
- MaskedTextProvider.cs
- Condition.cs
- CancellationHandlerDesigner.cs
- DataGridViewCellLinkedList.cs
- PageVisual.cs
- ZipIOExtraFieldElement.cs
- TypeConverterValueSerializer.cs
- RowParagraph.cs
- PriorityBinding.cs
- QilReplaceVisitor.cs
- BitmapInitialize.cs
- AutomationEvent.cs
- OracleConnection.cs
- ChtmlTextWriter.cs
- FormattedText.cs
- XmlDataContract.cs
- SerializationObjectManager.cs
- DrawListViewColumnHeaderEventArgs.cs
- WebRequestModuleElement.cs
- Connection.cs
- LogPolicy.cs
- ScriptingProfileServiceSection.cs
- RTLAwareMessageBox.cs
- ExtendedProtectionPolicy.cs
- WebServiceData.cs
- XmlSchemaNotation.cs
- UIPropertyMetadata.cs
- UniqueID.cs
- GradientBrush.cs
- BaseTreeIterator.cs
- SimpleLine.cs
- WindowsRegion.cs
- XmlSchemaException.cs
- LinkUtilities.cs
- BasicViewGenerator.cs
- ServiceContractListItem.cs
- CompiledQueryCacheKey.cs
- BaseDataBoundControl.cs
- ByteStack.cs
- Size3D.cs
- TypefaceMap.cs
- RegexCharClass.cs
- PartialArray.cs
- ContainsRowNumberChecker.cs
- WindowsGraphicsCacheManager.cs
- XmlSchemaType.cs
- UniformGrid.cs
- ComNativeDescriptor.cs
- CapabilitiesPattern.cs
- SizeFConverter.cs
- DirectoryObjectSecurity.cs
- PreviewPageInfo.cs
- VerticalAlignConverter.cs
- ReverseInheritProperty.cs
- MetadataCache.cs
- LayoutDump.cs
- ObjectQuery.cs
- httpserverutility.cs
- FormViewPageEventArgs.cs
- RoleGroup.cs
- MatrixAnimationUsingKeyFrames.cs
- StorageModelBuildProvider.cs
- Properties.cs
- HttpListenerRequest.cs
- ControlAdapter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- DesignerOptionService.cs
- SymbolPair.cs
- ManifestBasedResourceGroveler.cs
- ComponentCollection.cs
- DataSetViewSchema.cs
- XmlSchemaGroup.cs
- TypeResolver.cs
- NativeMethods.cs