Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControlToolBoxItem.cs / 1 / WebControlToolBoxItem.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design {
using System;
using System.Design;
using System.Reflection;
using System.Runtime.Serialization;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Design;
using System.IO;
using System.Web.UI;
///
///
///
[
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode),
Serializable
]
public class WebControlToolboxItem : ToolboxItem {
private string toolData = null;
private int persistChildren = -1;
///
public WebControlToolboxItem() {
}
///
///
/// Initializes a new instance of the class.
///
public WebControlToolboxItem(Type type) : base(type) {
BuildMetadataCache(type);
}
protected WebControlToolboxItem(SerializationInfo info, StreamingContext context) {
Deserialize(info, context);
}
private void BuildMetadataCache(Type type) {
toolData = ExtractToolboxData(type);
persistChildren = ExtractPersistChildrenAttribute(type);
}
///
///
///
/// Creates objects from each Type contained in this
/// , and adds
/// them to the specified designer.
///
protected override IComponent[] CreateComponentsCore(IDesignerHost host) {
throw new Exception(SR.GetString(SR.Toolbox_OnWebformsPage));
}
///
///
protected override void Deserialize(SerializationInfo info, StreamingContext context) {
base.Deserialize(info, context);
toolData = info.GetString("ToolData");
persistChildren = info.GetInt32("PersistChildren");
}
///
/// Extracts the value of the PersistChildrenAttribute attribute associated with the tool
///
private static int ExtractPersistChildrenAttribute(Type type) {
Debug.Assert(type != null);
if (type != null) {
object[] attrs = type.GetCustomAttributes(typeof(PersistChildrenAttribute), /*inherit*/ true);
if ((attrs != null) && (attrs.Length == 1)) {
Debug.Assert(attrs[0] is PersistChildrenAttribute);
PersistChildrenAttribute pca = (PersistChildrenAttribute)attrs[0];
return (pca.Persist ? 1 : 0);
}
}
return (PersistChildrenAttribute.Default.Persist ? 1 : 0);
}
///
/// Extracts the value of the ToolboxData attribute associated with the tool
///
private static string ExtractToolboxData(Type type) {
Debug.Assert(type != null);
string toolData = String.Empty;
if (type != null) {
object[] attrs = type.GetCustomAttributes(typeof(ToolboxDataAttribute), /*inherit*/ false);
if ((attrs != null) && (attrs.Length == 1)) {
Debug.Assert(attrs[0] is ToolboxDataAttribute);
ToolboxDataAttribute toolDataAttr = (ToolboxDataAttribute)attrs[0];
toolData = toolDataAttr.Data;
}
else {
string typeName = type.Name;
toolData = "<{0}:" + typeName + " runat=\"server\">{0}:" + typeName + ">";
}
}
return toolData;
}
///
public object GetToolAttributeValue(IDesignerHost host, Type attributeType) {
if (attributeType == typeof(PersistChildrenAttribute)) {
if (persistChildren == -1) {
Type toolType = GetToolType(host);
persistChildren = ExtractPersistChildrenAttribute(toolType);
}
return ((persistChildren == 1) ? true : false);
}
throw new ArgumentException(SR.GetString(SR.Toolbox_BadAttributeType));
}
///
///
/// Gets the toolbox HTML that represents the corresponding web control on the design surface.
///
public string GetToolHtml(IDesignerHost host) {
if (toolData != null) {
return toolData;
}
// Create the HTML data that is to be droppped.
Type toolType = GetToolType(host);
toolData = ExtractToolboxData(toolType);
return toolData;
}
///
public Type GetToolType(IDesignerHost host) {
if (host == null) {
throw new ArgumentNullException("host");
}
return GetType(host, AssemblyName, TypeName, true);
}
///
public override void Initialize(Type type) {
base.Initialize(type);
BuildMetadataCache(type);
}
///
///
protected override void Serialize(SerializationInfo info, StreamingContext context) {
base.Serialize(info, context);
info.AddValue("ToolData", toolData);
info.AddValue("PersistChildren", persistChildren);
}
}
}
// 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
- String.cs
- TextEditorMouse.cs
- FrameworkContextData.cs
- Visual3D.cs
- AttributeSetAction.cs
- EventListenerClientSide.cs
- Viewport2DVisual3D.cs
- TextProperties.cs
- MetadataItemSerializer.cs
- NaturalLanguageHyphenator.cs
- OuterGlowBitmapEffect.cs
- Decorator.cs
- DbException.cs
- FunctionUpdateCommand.cs
- RadioButtonRenderer.cs
- DocumentSequenceHighlightLayer.cs
- ContainerVisual.cs
- ImageIndexConverter.cs
- TabControl.cs
- CssTextWriter.cs
- TableLayoutPanelCellPosition.cs
- WindowInteropHelper.cs
- HttpCookiesSection.cs
- FormViewUpdateEventArgs.cs
- UdpAnnouncementEndpoint.cs
- WinFormsUtils.cs
- ConsoleCancelEventArgs.cs
- SqlConnectionFactory.cs
- BezierSegment.cs
- XmlUtilWriter.cs
- HtmlInputPassword.cs
- ProfileInfo.cs
- XmlTypeAttribute.cs
- GradientStopCollection.cs
- BooleanToVisibilityConverter.cs
- OleDbCommandBuilder.cs
- RelationshipFixer.cs
- WhereaboutsReader.cs
- MarkupExtensionReturnTypeAttribute.cs
- AnimationTimeline.cs
- XmlObjectSerializerReadContext.cs
- OleDbConnectionInternal.cs
- PageRanges.cs
- DeviceSpecificChoice.cs
- MatrixTransform.cs
- CompositionAdorner.cs
- SafeCertificateStore.cs
- NonParentingControl.cs
- MethodMessage.cs
- Parsers.cs
- DBConnection.cs
- DebugHandleTracker.cs
- XPathCompileException.cs
- AlphabeticalEnumConverter.cs
- HTMLTagNameToTypeMapper.cs
- HtmlInputFile.cs
- util.cs
- ResizeGrip.cs
- SubstitutionResponseElement.cs
- XmlAnyElementAttribute.cs
- InitializationEventAttribute.cs
- XmlUtil.cs
- Light.cs
- NavigationEventArgs.cs
- DataSourceControlBuilder.cs
- MetadataFile.cs
- DataServiceRequestException.cs
- DeclarativeExpressionConditionDeclaration.cs
- CheckPair.cs
- AQNBuilder.cs
- KnownAssemblyEntry.cs
- AssemblyCollection.cs
- DefaultTraceListener.cs
- ClientSettings.cs
- QilParameter.cs
- GZipDecoder.cs
- Rectangle.cs
- PerspectiveCamera.cs
- ExpressionPrefixAttribute.cs
- ActivityIdHeader.cs
- messageonlyhwndwrapper.cs
- RuntimeCompatibilityAttribute.cs
- NamespaceList.cs
- PolygonHotSpot.cs
- DataControlPagerLinkButton.cs
- TextChange.cs
- WebUtil.cs
- CfgParser.cs
- PtsCache.cs
- CheckPair.cs
- RoleManagerSection.cs
- MetadataArtifactLoaderComposite.cs
- ConfigurationPropertyAttribute.cs
- DriveNotFoundException.cs
- RectangleConverter.cs
- SafeCryptHandles.cs
- CodeDomDecompiler.cs
- MouseGestureConverter.cs
- Image.cs
- PartialCachingControl.cs