Code:
/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WebForms / System / Web / UI / Design / WebControls / LoginStatusDesigner.cs / 1 / LoginStatusDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design.WebControls {
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Design;
using System.Diagnostics;
using System.Globalization;
using System.Web.UI.WebControls;
///
///
/// Designer for the LoginStatus control. Includes verb to switch whether the control renders as "login" or "logout".
///
[System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)]
public class LoginStatusDesigner : CompositeControlDesigner {
private bool _loggedIn;
private LoginStatus _loginStatus;
///
public override DesignerActionListCollection ActionLists {
get {
DesignerActionListCollection actionLists = new DesignerActionListCollection();
actionLists.AddRange(base.ActionLists);
actionLists.Add(new LoginStatusDesignerActionList(this));
return actionLists;
}
}
protected override bool UsePreviewControl {
get {
return true;
}
}
public override string GetDesignTimeHtml() {
IDictionary parameters = new HybridDictionary(2);
parameters["LoggedIn"] = _loggedIn;
LoginStatus loginStatus = (LoginStatus)ViewControl;
((IControlDesignerAccessor)loginStatus).SetDesignModeState(parameters);
bool blank;
string originalText;
if (_loggedIn) {
originalText = loginStatus.LogoutText;
// Need to check if original text is empty OR a single space " ", since it is
// persisted as a single space in the designer due to a Trident bug
blank = (originalText == null || originalText.Length == 0 || originalText == " ");
if (blank) {
loginStatus.LogoutText = "[" + loginStatus.ID + "]";
}
}
else {
originalText = loginStatus.LoginText;
blank = (originalText == null || originalText.Length == 0 || originalText == " ");
if (blank) {
loginStatus.LoginText = "[" + loginStatus.ID + "]";
}
}
return base.GetDesignTimeHtml();
}
///
public override void Initialize(IComponent component) {
VerifyInitializeArgument(component, typeof(LoginStatus));
_loginStatus = (LoginStatus) component;
base.Initialize(component);
}
private class LoginStatusDesignerActionList : DesignerActionList {
private LoginStatusDesigner _designer;
public LoginStatusDesignerActionList(LoginStatusDesigner designer) :base(designer.Component) {
_designer = designer;
}
public override bool AutoShow {
get {
return true;
}
set {
}
}
[TypeConverter(typeof(LoginStatusViewTypeConverter))]
public string View {
get {
if (_designer._loggedIn) {
return SR.GetString(SR.LoginStatus_LoggedInView);
}
else {
return SR.GetString(SR.LoginStatus_LoggedOutView);
}
}
set {
if (String.Compare(value, SR.GetString(SR.LoginStatus_LoggedInView), StringComparison.Ordinal) == 0) {
_designer._loggedIn = true;
}
else if (String.Compare(value, SR.GetString(SR.LoginStatus_LoggedOutView), StringComparison.Ordinal) == 0) {
_designer._loggedIn = false;
}
else {
Debug.Fail("Unexpected view value");
}
_designer.UpdateDesignTimeHtml();
}
}
public override DesignerActionItemCollection GetSortedActionItems() {
DesignerActionItemCollection items = new DesignerActionItemCollection();
items.Add(new DesignerActionPropertyItem("View", SR.GetString(SR.WebControls_Views),
String.Empty, SR.GetString(SR.WebControls_ViewsDescription)));
return items;
}
private class LoginStatusViewTypeConverter : TypeConverter {
public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) {
string[] names = new string[2];
names[0] = SR.GetString(SR.LoginStatus_LoggedOutView);
names[1] = SR.GetString(SR.LoginStatus_LoggedInView);
return new StandardValuesCollection(names);
}
public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) {
return true;
}
public override bool GetStandardValuesSupported(ITypeDescriptorContext context) {
return true;
}
}
}
}
}
// 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
- StaticExtensionConverter.cs
- ButtonBaseAdapter.cs
- VBIdentifierDesigner.xaml.cs
- AttachedPropertyBrowsableAttribute.cs
- SchemaLookupTable.cs
- Rules.cs
- _ProxyChain.cs
- MonthCalendar.cs
- SpeakCompletedEventArgs.cs
- DesignerHelpers.cs
- SpotLight.cs
- TextSerializer.cs
- SqlRewriteScalarSubqueries.cs
- GridViewUpdateEventArgs.cs
- DataBoundControl.cs
- IListConverters.cs
- CroppedBitmap.cs
- HttpRequest.cs
- XmlHierarchyData.cs
- SafeReadContext.cs
- ParameterCollectionEditor.cs
- XmlDomTextWriter.cs
- InstanceCreationEditor.cs
- _IPv6Address.cs
- Table.cs
- EntityCollectionChangedParams.cs
- XmlReflectionMember.cs
- HttpAsyncResult.cs
- Panel.cs
- ASCIIEncoding.cs
- XslException.cs
- FaultImportOptions.cs
- BitmapCodecInfo.cs
- PropertyRecord.cs
- SelfSignedCertificate.cs
- DbConnectionStringBuilder.cs
- AnnotationAdorner.cs
- PartialCachingControl.cs
- WebPartExportVerb.cs
- ExtensionFile.cs
- XmlBaseWriter.cs
- TextEffect.cs
- RuntimeEnvironment.cs
- SmiContext.cs
- ProviderIncompatibleException.cs
- PeerToPeerException.cs
- EncoderParameters.cs
- GlyphingCache.cs
- EnumMemberAttribute.cs
- CannotUnloadAppDomainException.cs
- Rotation3DAnimationUsingKeyFrames.cs
- XamlClipboardData.cs
- DataServiceConfiguration.cs
- DetailsViewAutoFormat.cs
- Sql8ConformanceChecker.cs
- ComponentCollection.cs
- DoubleAnimationBase.cs
- HttpRuntime.cs
- ToolStripDropDown.cs
- HtmlTableCellCollection.cs
- DbConnectionPoolGroup.cs
- MembershipUser.cs
- QueryableDataSourceHelper.cs
- IndexerNameAttribute.cs
- FacetDescriptionElement.cs
- MenuRendererStandards.cs
- RouteParameter.cs
- Ray3DHitTestResult.cs
- ContractMapping.cs
- CacheForPrimitiveTypes.cs
- BuildResult.cs
- XmlAttributeAttribute.cs
- HasRunnableWorkflowEvent.cs
- Floater.cs
- WebPartAddingEventArgs.cs
- EntityObject.cs
- WebBrowser.cs
- ItemsControlAutomationPeer.cs
- TypedServiceChannelBuilder.cs
- HtmlInputRadioButton.cs
- AttributeEmitter.cs
- CaseCqlBlock.cs
- MobileRedirect.cs
- FileUpload.cs
- ListViewInsertedEventArgs.cs
- ReflectTypeDescriptionProvider.cs
- UpdatePanelTriggerCollection.cs
- PolicyManager.cs
- SafeSystemMetrics.cs
- CompiledIdentityConstraint.cs
- ToolStripContainerActionList.cs
- DataGridViewEditingControlShowingEventArgs.cs
- TableLayoutSettings.cs
- FunctionImportMapping.cs
- TextViewSelectionProcessor.cs
- SqlUserDefinedAggregateAttribute.cs
- DataViewSettingCollection.cs
- TableCellCollection.cs
- SchemaNotation.cs
- ConvertEvent.cs