Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebParts / CatalogZoneDesigner.cs / 1 / CatalogZoneDesigner.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.WebControls.WebParts { using System.ComponentModel; using System.ComponentModel.Design; using System.Data; using System.Design; using System.Diagnostics; using System.Globalization; using System.IO; using System.Web.UI.Design; using System.Web.UI.Design.WebControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; ////// [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)] public class CatalogZoneDesigner : ToolZoneDesigner { private static DesignerAutoFormatCollection _autoFormats; private CatalogZone _zone; private TemplateGroup _templateGroup; public override DesignerAutoFormatCollection AutoFormats { get { if (_autoFormats == null) { _autoFormats = CreateAutoFormats(AutoFormatSchemes.CATALOGZONE_SCHEMES, delegate(DataRow schemeData) { return new CatalogZoneAutoFormat(schemeData); }); } return _autoFormats; } } public override TemplateGroupCollection TemplateGroups { get { TemplateGroupCollection groups = base.TemplateGroups; if (_templateGroup == null) { _templateGroup = CreateZoneTemplateGroup(); } groups.Add(_templateGroup); return groups; } } public override string GetDesignTimeHtml() { return GetDesignTimeHtml(null); } ////// /// Provides the layout html for the control in the designer, including regions. /// public override string GetDesignTimeHtml(DesignerRegionCollection regions) { string designTimeHtml; try { CatalogZone zone = (CatalogZone)ViewControl; bool useRegions = UseRegions(regions, _zone.ZoneTemplate, zone.ZoneTemplate); // When there is an editable region, we want to use the regular control // rendering instead of the EmptyDesignTimeHtml if (zone.ZoneTemplate == null && !useRegions) { designTimeHtml = GetEmptyDesignTimeHtml(); } else { ((ICompositeControlDesignerAccessor)zone).RecreateChildControls(); if (useRegions) { // If the tools supports editable regions, the initial rendering of the // WebParts in the Zone is thrown away by the tool anyway, so we should clear // the controls collection before rendering. If we don't clear the controls // collection and a WebPart inside the Zone throws an exception when rendering, // this would cause the whole Zone to render as an error, instead of just // the offending WebPart. This also improves perf. zone.Controls.Clear(); CatalogPartEditableDesignerRegion region = new CatalogPartEditableDesignerRegion(zone, TemplateDefinition); // Tells Venus that all controls inside the EditableRegion should be parented to the zone region.Properties[typeof(Control)] = zone; region.IsSingleInstanceTemplate = true; region.Description = SR.GetString(SR.ContainerControlDesigner_RegionWatermark); regions.Add(region); } designTimeHtml = base.GetDesignTimeHtml(); } if (ViewInBrowseMode && zone.ID != CatalogZoneAutoFormat.PreviewControlID) { designTimeHtml = CreatePlaceHolderDesignTimeHtml(); } } catch (Exception e) { designTimeHtml = GetErrorDesignTimeHtml(e); } return designTimeHtml; } ////// /// Get the content for the specified region /// public override string GetEditableDesignerRegionContent(EditableDesignerRegion region) { Debug.Assert(region != null); // Occasionally getting NullRef here in WebMatrix. Maybe Zone is null? Debug.Assert(_zone != null); return ControlPersister.PersistTemplate(_zone.ZoneTemplate, (IDesignerHost)Component.Site.GetService(typeof(IDesignerHost))); } protected override string GetEmptyDesignTimeHtml() { return CreatePlaceHolderDesignTimeHtml(SR.GetString(SR.CatalogZoneDesigner_Empty)); } public override void Initialize(IComponent component) { VerifyInitializeArgument(component, typeof(CatalogZone)); base.Initialize(component); _zone = (CatalogZone)component; } ////// /// Set the content for the specified region /// public override void SetEditableDesignerRegionContent(EditableDesignerRegion region, string content) { Debug.Assert(region != null); _zone.ZoneTemplate = ControlParser.ParseTemplate((IDesignerHost)Component.Site.GetService(typeof(IDesignerHost)), content); IsDirtyInternal = true; } private sealed class CatalogPartEditableDesignerRegion : TemplatedEditableDesignerRegion { private CatalogZone _zone; public CatalogPartEditableDesignerRegion(CatalogZone zone, TemplateDefinition templateDefinition) : base(templateDefinition) { _zone = zone; } public override ViewRendering GetChildViewRendering(Control control) { if (control == null) { throw new ArgumentNullException("control"); } DesignerCatalogPartChrome chrome = new DesignerCatalogPartChrome(_zone); return chrome.GetViewRendering(control); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DefaultBinder.cs
- WebServiceReceive.cs
- Options.cs
- SoapEnvelopeProcessingElement.cs
- CompilationRelaxations.cs
- ProcessModuleCollection.cs
- SafeSecurityHandles.cs
- PeerReferralPolicy.cs
- UntypedNullExpression.cs
- EventsTab.cs
- BindingList.cs
- _IPv4Address.cs
- WebPartManager.cs
- MediaEntryAttribute.cs
- EntityTypeBase.cs
- StateRuntime.cs
- EarlyBoundInfo.cs
- CryptoProvider.cs
- MetadataHelper.cs
- FastEncoderWindow.cs
- LinearGradientBrush.cs
- HttpChannelHelper.cs
- FormatException.cs
- ProcessProtocolHandler.cs
- VSWCFServiceContractGenerator.cs
- XPathQueryGenerator.cs
- DataGridViewColumnDesigner.cs
- DataSvcMapFile.cs
- BStrWrapper.cs
- ObjectQueryState.cs
- DoubleUtil.cs
- HttpResponseHeader.cs
- DeferredTextReference.cs
- HtmlTextArea.cs
- BitmapMetadata.cs
- DisableDpiAwarenessAttribute.cs
- VolatileEnlistmentState.cs
- Application.cs
- SqlColumnizer.cs
- GridViewRowEventArgs.cs
- FederatedMessageSecurityOverHttpElement.cs
- Timeline.cs
- Path.cs
- BindingsCollection.cs
- AppDomainManager.cs
- SpellCheck.cs
- DispatcherHooks.cs
- FixedSOMPage.cs
- PackagePartCollection.cs
- PrintPageEvent.cs
- CannotUnloadAppDomainException.cs
- ImageKeyConverter.cs
- ChannelBinding.cs
- ResourceAttributes.cs
- MetafileHeaderWmf.cs
- DataGridViewAdvancedBorderStyle.cs
- BlurBitmapEffect.cs
- DesignerEventService.cs
- DrawingDrawingContext.cs
- ResponseStream.cs
- UrlParameterReader.cs
- HttpListenerResponse.cs
- TextTrailingCharacterEllipsis.cs
- DataGridPageChangedEventArgs.cs
- WebPartTransformer.cs
- SqlExpressionNullability.cs
- SystemUnicastIPAddressInformation.cs
- DependencySource.cs
- InternalSafeNativeMethods.cs
- HandlerMappingMemo.cs
- SqlBulkCopy.cs
- StreamSecurityUpgradeAcceptorBase.cs
- LateBoundBitmapDecoder.cs
- StrokeNodeData.cs
- DefaultPropertyAttribute.cs
- SamlAuthorityBinding.cs
- WindowsTreeView.cs
- SpeechEvent.cs
- BinaryCommonClasses.cs
- columnmapkeybuilder.cs
- ValueTypeFixupInfo.cs
- PageCopyCount.cs
- HyperLinkField.cs
- DataGridViewLayoutData.cs
- Socket.cs
- AddInControllerImpl.cs
- TypeInitializationException.cs
- ZipIOModeEnforcingStream.cs
- unitconverter.cs
- EdmItemCollection.cs
- ContextMenu.cs
- OdbcConnectionStringbuilder.cs
- ProfileSection.cs
- SingleTagSectionHandler.cs
- PageAction.cs
- InsufficientMemoryException.cs
- Int32AnimationBase.cs
- DataControlCommands.cs
- ToolStripPanelRow.cs
- BindingList.cs