Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / Converters / ChoiceConverter.cs / 1305376 / ChoiceConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.MobileControls.Converters { using System.Diagnostics; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Globalization; using System.Reflection; using System.Web.UI.Design.MobileControls.Util; using System.Web.UI.MobileControls; using System.Windows.Forms; ////// [ System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode) ] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] internal class ChoiceConverter: StringConverter { public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (context != null && context.Instance is Array) { return value; } if (value is String) { return MatchFilterName((string)value, context); } return base.ConvertFrom(context, culture, value); } ////// Can filter and retrieve several types of values from controls. /// ////// protected virtual Object [] GetChoices(Object instance) { bool defaultAdded = false; DeviceSpecific deviceSpecific; if (instance is System.Web.UI.MobileControls.StyleSheet) { StyleSheet ss = (StyleSheet) instance; ISite componentSite = ss.Site; Debug.Assert(componentSite != null, "Expected the component to be sited."); IDesignerHost designerHost = (IDesignerHost) componentSite.GetService(typeof(IDesignerHost)); Debug.Assert(designerHost != null, "Expected a designer host."); Object designer = designerHost.GetDesigner(ss); Debug.Assert(designer != null, "Expected a designer for the stylesheet."); Debug.Assert(designer is StyleSheetDesigner, "Expected a StyleSheet designer."); StyleSheetDesigner ssd = (StyleSheetDesigner) designer; Style style = (Style) ssd.CurrentStyle; if (null != style) { deviceSpecific = style.DeviceSpecific; } else { deviceSpecific = null; } } else if (instance is System.Web.UI.MobileControls.DeviceSpecific) { deviceSpecific = (DeviceSpecific) instance; } else if (instance is MobileControl) { MobileControl mc = (MobileControl) instance; deviceSpecific = mc.DeviceSpecific; } else { // Simply return null if the instance is not recognizable. return null; } ArrayList returnArray = new ArrayList(); // entry that corresponds to null CurrentChoice. returnArray.Add(SR.GetString(SR.DeviceFilter_NoChoice)); if (null == deviceSpecific) { return returnArray.ToArray(); } Debug.Assert(deviceSpecific.Choices != null); foreach(DeviceSpecificChoice choice in deviceSpecific.Choices) { // Choice must have a Name if (choice.Filter != null && choice.Filter.Length == 0) { if (!defaultAdded) { returnArray.Add(SR.GetString(SR.DeviceFilter_DefaultChoice)); defaultAdded = true; } } else { if (!choice.Filter.Equals(SR.GetString(SR.DeviceFilter_NoChoice))) { returnArray.Add(DesignerUtility.ChoiceToUniqueIdentifier(choice)); } } } returnArray.Sort(); return returnArray.ToArray(); } ////// /// /// A type descriptor that specifies the location of the context to convert from. /// ////// Returns a collection of standard values retrieved from the context specified /// by the specified type descriptor. /// ////// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { if (context == null || context.Instance == null) { return null; } Object [] objValues = GetChoices(context.Instance); if (objValues != null) { return new StandardValuesCollection(objValues); } else { return null; } } ////// A StandardValuesCollection that represents the standard values collected from /// the specified context. /// ////// /// /// A type descriptor that indicates the context to convert from. /// ////// Gets whether /// or not the context specified contains exclusive standard values. /// ////// public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return false; } ////// ///if the specified context contains exclusive standard /// values, otherwise . /// /// /// /// A type descriptor that indicates the context to convert from. /// ////// Gets whether or not the specified context contains supported standard /// values. /// ////// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } private String MatchFilterName(String name, ITypeDescriptorContext context) { Debug.Assert(name != null, "Expected an actual device filter name to match."); // Try a partial match // String bestMatch = null; StandardValuesCollection standardValues = GetStandardValues(context); if (standardValues == null) { return null; } IEnumerator e = standardValues.GetEnumerator(); while (e.MoveNext()) { string filterName = e.Current.ToString(); if (String.Equals(filterName, name, StringComparison.OrdinalIgnoreCase)) { // For an exact match, return immediately // return filterName; } else if (e.Current.ToString().StartsWith(name, StringComparison.OrdinalIgnoreCase)) { if (bestMatch == null || filterName.Length <= bestMatch.Length) { bestMatch = filterName; } } } if (bestMatch == null) { // no match... use NoChoice bestMatch = SR.GetString(SR.DeviceFilter_NoChoice); } return bestMatch; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ ///// ///if the specified context conatins supported standard /// values, otherwise . /// // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.Design.MobileControls.Converters { using System.Diagnostics; using System.Collections; using System.ComponentModel; using System.ComponentModel.Design; using System.Globalization; using System.Reflection; using System.Web.UI.Design.MobileControls.Util; using System.Web.UI.MobileControls; using System.Windows.Forms; ////// [ System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode) ] [Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")] internal class ChoiceConverter: StringConverter { public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (context != null && context.Instance is Array) { return value; } if (value is String) { return MatchFilterName((string)value, context); } return base.ConvertFrom(context, culture, value); } ////// Can filter and retrieve several types of values from controls. /// ////// protected virtual Object [] GetChoices(Object instance) { bool defaultAdded = false; DeviceSpecific deviceSpecific; if (instance is System.Web.UI.MobileControls.StyleSheet) { StyleSheet ss = (StyleSheet) instance; ISite componentSite = ss.Site; Debug.Assert(componentSite != null, "Expected the component to be sited."); IDesignerHost designerHost = (IDesignerHost) componentSite.GetService(typeof(IDesignerHost)); Debug.Assert(designerHost != null, "Expected a designer host."); Object designer = designerHost.GetDesigner(ss); Debug.Assert(designer != null, "Expected a designer for the stylesheet."); Debug.Assert(designer is StyleSheetDesigner, "Expected a StyleSheet designer."); StyleSheetDesigner ssd = (StyleSheetDesigner) designer; Style style = (Style) ssd.CurrentStyle; if (null != style) { deviceSpecific = style.DeviceSpecific; } else { deviceSpecific = null; } } else if (instance is System.Web.UI.MobileControls.DeviceSpecific) { deviceSpecific = (DeviceSpecific) instance; } else if (instance is MobileControl) { MobileControl mc = (MobileControl) instance; deviceSpecific = mc.DeviceSpecific; } else { // Simply return null if the instance is not recognizable. return null; } ArrayList returnArray = new ArrayList(); // entry that corresponds to null CurrentChoice. returnArray.Add(SR.GetString(SR.DeviceFilter_NoChoice)); if (null == deviceSpecific) { return returnArray.ToArray(); } Debug.Assert(deviceSpecific.Choices != null); foreach(DeviceSpecificChoice choice in deviceSpecific.Choices) { // Choice must have a Name if (choice.Filter != null && choice.Filter.Length == 0) { if (!defaultAdded) { returnArray.Add(SR.GetString(SR.DeviceFilter_DefaultChoice)); defaultAdded = true; } } else { if (!choice.Filter.Equals(SR.GetString(SR.DeviceFilter_NoChoice))) { returnArray.Add(DesignerUtility.ChoiceToUniqueIdentifier(choice)); } } } returnArray.Sort(); return returnArray.ToArray(); } ////// /// /// A type descriptor that specifies the location of the context to convert from. /// ////// Returns a collection of standard values retrieved from the context specified /// by the specified type descriptor. /// ////// public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) { if (context == null || context.Instance == null) { return null; } Object [] objValues = GetChoices(context.Instance); if (objValues != null) { return new StandardValuesCollection(objValues); } else { return null; } } ////// A StandardValuesCollection that represents the standard values collected from /// the specified context. /// ////// /// /// A type descriptor that indicates the context to convert from. /// ////// Gets whether /// or not the context specified contains exclusive standard values. /// ////// public override bool GetStandardValuesExclusive(ITypeDescriptorContext context) { return false; } ////// ///if the specified context contains exclusive standard /// values, otherwise . /// /// /// /// A type descriptor that indicates the context to convert from. /// ////// Gets whether or not the specified context contains supported standard /// values. /// ////// public override bool GetStandardValuesSupported(ITypeDescriptorContext context) { return true; } private String MatchFilterName(String name, ITypeDescriptorContext context) { Debug.Assert(name != null, "Expected an actual device filter name to match."); // Try a partial match // String bestMatch = null; StandardValuesCollection standardValues = GetStandardValues(context); if (standardValues == null) { return null; } IEnumerator e = standardValues.GetEnumerator(); while (e.MoveNext()) { string filterName = e.Current.ToString(); if (String.Equals(filterName, name, StringComparison.OrdinalIgnoreCase)) { // For an exact match, return immediately // return filterName; } else if (e.Current.ToString().StartsWith(name, StringComparison.OrdinalIgnoreCase)) { if (bestMatch == null || filterName.Length <= bestMatch.Length) { bestMatch = filterName; } } } if (bestMatch == null) { // no match... use NoChoice bestMatch = SR.GetString(SR.DeviceFilter_NoChoice); } return bestMatch; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// ///if the specified context conatins supported standard /// values, otherwise . ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UserNameSecurityToken.cs
- TypeRestriction.cs
- ReceiveCompletedEventArgs.cs
- sqlmetadatafactory.cs
- SiteMap.cs
- Mapping.cs
- COM2IDispatchConverter.cs
- PanelStyle.cs
- Point3DKeyFrameCollection.cs
- Config.cs
- arabicshape.cs
- HandlerBase.cs
- JoinGraph.cs
- ColumnResizeUndoUnit.cs
- Animatable.cs
- ContentWrapperAttribute.cs
- BoolExpressionVisitors.cs
- CollectionBuilder.cs
- ObjectDisposedException.cs
- XmlTextReaderImplHelpers.cs
- RegexCode.cs
- AnimatedTypeHelpers.cs
- HttpContext.cs
- DbParameterCollection.cs
- OrderedDictionaryStateHelper.cs
- SessionPageStateSection.cs
- FlowDocumentPaginator.cs
- ArgumentNullException.cs
- RuntimeWrappedException.cs
- XmlDataContract.cs
- ListCollectionView.cs
- CompiledRegexRunnerFactory.cs
- PageThemeCodeDomTreeGenerator.cs
- LocationSectionRecord.cs
- SapiGrammar.cs
- FixedDSBuilder.cs
- Brush.cs
- DesignerWebPartChrome.cs
- GroupBox.cs
- SByte.cs
- RuleProcessor.cs
- WinFormsSpinner.cs
- AuthenticationService.cs
- VarInfo.cs
- GenericPrincipal.cs
- AdornerHitTestResult.cs
- StateRuntime.cs
- FormViewUpdateEventArgs.cs
- KeyTime.cs
- BackgroundFormatInfo.cs
- TreeViewCancelEvent.cs
- BaseCAMarshaler.cs
- WebConfigurationHost.cs
- ConnectionOrientedTransportBindingElement.cs
- RijndaelManaged.cs
- EntityCommandCompilationException.cs
- SiteIdentityPermission.cs
- ConfigurationHandlersInstallComponent.cs
- MetadataArtifactLoaderCompositeResource.cs
- SecurityUniqueId.cs
- EntityDataSourceState.cs
- GatewayIPAddressInformationCollection.cs
- DateTimeOffset.cs
- StorageInfo.cs
- Variant.cs
- FontFamilyValueSerializer.cs
- SqlNodeAnnotations.cs
- ScrollPattern.cs
- IisTraceWebEventProvider.cs
- SoapSchemaMember.cs
- MergablePropertyAttribute.cs
- BaseCollection.cs
- PassportPrincipal.cs
- InheritedPropertyChangedEventArgs.cs
- AddInServer.cs
- TypeContext.cs
- Trace.cs
- CompensationHandlingFilter.cs
- ResourceDisplayNameAttribute.cs
- DataTableReader.cs
- HttpsTransportBindingElement.cs
- HtmlContainerControl.cs
- DiscoveryClientChannelBase.cs
- ExpressionSelection.cs
- UnsafeNativeMethods.cs
- ProtectedConfigurationSection.cs
- returneventsaver.cs
- DataGridViewHeaderCell.cs
- DBBindings.cs
- BitmapCodecInfoInternal.cs
- NumberAction.cs
- AnnotationAdorner.cs
- StoreItemCollection.Loader.cs
- ComponentManagerBroker.cs
- ForeignConstraint.cs
- CancelEventArgs.cs
- Thread.cs
- XPathNodeList.cs
- DataTableCollection.cs
- SQLBoolean.cs