MobileCategoryAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / MobileCategoryAttribute.cs / 1305376 / MobileCategoryAttribute.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.MobileControls 
{ 
    using System;
    using System.ComponentModel; 
    using System.Diagnostics;

    [
        AttributeUsage(AttributeTargets.All) 
    ]
    [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 sealed class MobileCategoryAttribute : CategoryAttribute 
    {
        private static MobileCategoryAttribute deviceSpecific; 
        private const String _categoryDeviceSpecific = "Category_DeviceSpecific";
        private const String _categoryPrefix = "Category_";
        private const String _usCategoryDeviceSpecific = "Device Specific";
        private static readonly int _prefixLength = _categoryPrefix.Length; 

        // Initializes a new instance of the CategoryAttribute class. 
        internal /*public*/ MobileCategoryAttribute(String category) : base(category) 
        {
        } 

        internal /*public*/ static CategoryAttribute DeviceSpecific
        {
            get 
            {
                if (deviceSpecific == null) 
                { 
                    deviceSpecific = new MobileCategoryAttribute(_categoryDeviceSpecific);
                } 
                return deviceSpecific;
            }
        }
 
        // This method is called the first time the category property
        // is accessed.  It provides a way to lookup a localized string for 
        // the given category.  Classes may override this to add their 
        // own localized names to categories.  If a localized string is
        // available for the given value, the method should return it. 
        // Otherwise, it should return null.
        protected override String GetLocalizedString(String value)
        {
            Debug.Assert(value != null); 
            String localizedValue = null;
 
            int index = value.IndexOf(_categoryPrefix, StringComparison.Ordinal); 

            // mobile controls have "Category_" prefix. 
            if (index == 0)
            {
                String categoryName = value.Substring(_prefixLength);
 
                // see if already defined in base class.
                localizedValue = base.GetLocalizedString(categoryName); 
            } 

            // fall back to local resource string. 
            if (localizedValue == null)
            {
                localizedValue = (String) SR.GetString(value);
            } 

            if (localizedValue == null && value.Equals(_usCategoryDeviceSpecific)) 
            { 
                localizedValue = (String) SR.GetString(SR.Category_DeviceSpecific);
            } 

            // This attribute is internal, and we should never have a missing resource string.
            Debug.Assert(localizedValue != null,
                "All MobileWebForms category attributes should have localized strings.  Category '" 
                + value + "' not found.");
            return localizedValue; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.MobileControls 
{ 
    using System;
    using System.ComponentModel; 
    using System.Diagnostics;

    [
        AttributeUsage(AttributeTargets.All) 
    ]
    [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 sealed class MobileCategoryAttribute : CategoryAttribute 
    {
        private static MobileCategoryAttribute deviceSpecific; 
        private const String _categoryDeviceSpecific = "Category_DeviceSpecific";
        private const String _categoryPrefix = "Category_";
        private const String _usCategoryDeviceSpecific = "Device Specific";
        private static readonly int _prefixLength = _categoryPrefix.Length; 

        // Initializes a new instance of the CategoryAttribute class. 
        internal /*public*/ MobileCategoryAttribute(String category) : base(category) 
        {
        } 

        internal /*public*/ static CategoryAttribute DeviceSpecific
        {
            get 
            {
                if (deviceSpecific == null) 
                { 
                    deviceSpecific = new MobileCategoryAttribute(_categoryDeviceSpecific);
                } 
                return deviceSpecific;
            }
        }
 
        // This method is called the first time the category property
        // is accessed.  It provides a way to lookup a localized string for 
        // the given category.  Classes may override this to add their 
        // own localized names to categories.  If a localized string is
        // available for the given value, the method should return it. 
        // Otherwise, it should return null.
        protected override String GetLocalizedString(String value)
        {
            Debug.Assert(value != null); 
            String localizedValue = null;
 
            int index = value.IndexOf(_categoryPrefix, StringComparison.Ordinal); 

            // mobile controls have "Category_" prefix. 
            if (index == 0)
            {
                String categoryName = value.Substring(_prefixLength);
 
                // see if already defined in base class.
                localizedValue = base.GetLocalizedString(categoryName); 
            } 

            // fall back to local resource string. 
            if (localizedValue == null)
            {
                localizedValue = (String) SR.GetString(value);
            } 

            if (localizedValue == null && value.Equals(_usCategoryDeviceSpecific)) 
            { 
                localizedValue = (String) SR.GetString(SR.Category_DeviceSpecific);
            } 

            // This attribute is internal, and we should never have a missing resource string.
            Debug.Assert(localizedValue != null,
                "All MobileWebForms category attributes should have localized strings.  Category '" 
                + value + "' not found.");
            return localizedValue; 
        } 
    }
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK