DesignerUtility.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / Util / DesignerUtility.cs / 1305376 / DesignerUtility.cs

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

namespace System.Web.UI.Design.MobileControls.Util 
{ 
    using System;
    using System.Collections; 
    using System.Collections.Specialized;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Diagnostics; 
    using System.Reflection;
    using System.Web.UI.MobileControls; 
    using System.Globalization; 

    [ 
        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 DesignerUtility
    { 
        /* Removed for DCR 4240 
        internal static bool IsValidName(String name)
        { 
            if (name == null || name.Length == 0)
            {
                return false;
            } 

            for (int pos = 0; pos < name.Length; pos++) 
            { 
                Char ch = name[pos];
                if (Char.IsWhiteSpace(ch) || ch.Equals('"') || ch.Equals('<') || 
                    ch.Equals('>') || ch.Equals('\'') || ch.Equals('&'))
                {
                    return false;
                } 
            }
            return true; 
        } 
        */
 
        internal static bool TopLevelControl(MobileControl control)
        {
            if (control is Form || control is StyleSheet)
            { 
                return true;
            } 
            return false; 
        }
 
        internal static String ChoiceToUniqueIdentifier(DeviceSpecificChoice choice)
        {
            Debug.Assert(choice != null);
            return  ChoiceToUniqueIdentifier(choice.Filter, choice.Argument); 
        }
 
        internal static String ChoiceToUniqueIdentifier(String filter, String argument) 
        {
            if (String.IsNullOrEmpty(filter)) 
            {
                filter = SR.GetString(SR.DeviceFilter_DefaultChoice);
            }
            if (argument == null) 
            {
                argument = String.Empty; 
            } 
            return String.Format(CultureInfo.InvariantCulture, "{0} (\"{1}\")", filter, argument);
        } 

        // NOTE: Throws CheckoutException.Canceled if user cancels checkout.
        internal static void EnsureFileCheckedOut(ISite site, String fileName)
        { 
            Type serviceType = Type.GetType("Microsoft.VisualStudio.Shell.VsCheckoutService, " + AssemblyRef.MicrosoftVisualStudio);
 
            // Do nothing if service cannot be found. 
            if (serviceType == null) {
//                Debug.Fail("type Microsoft.VisualStudio.Shell.VsCheckoutService cannot be found in DesignerUtility.EnsureFileCheckedOut."); 
                return;
            }

            Object serviceInstance = System.Activator.CreateInstance( 
                serviceType, new Object[] { site });
 
            try 
            {
                Object[] args = new Object[] { fileName }; 
                bool fileNeedsCheckout = (bool) serviceType.InvokeMember(
                    "DoesFileNeedCheckout",
                    BindingFlags.Default | BindingFlags.InvokeMethod,
                    null, 
                    serviceInstance,
                    args, CultureInfo.InvariantCulture 
                ); 
                if(fileNeedsCheckout)
                { 
                    serviceType.InvokeMember(
                        "CheckoutFile",
                        BindingFlags.Default | BindingFlags.InvokeMethod,
                        null, 
                        serviceInstance,
                        args, CultureInfo.InvariantCulture 
                    ); 
                }
            } 
            finally
            {
                serviceType.InvokeMember(
                    "Dispose", 
                    BindingFlags.Default | BindingFlags.InvokeMethod,
                    null, 
                    serviceInstance, 
                    new Object[] {}, CultureInfo.InvariantCulture
                ); 
                serviceInstance = null;
            }
        }
 
        // Ideally we would refactor the rest of the common code in the ADF/PO/DFE
        // dialogs into a separate manager object. 
        internal static StringCollection GetDuplicateChoiceTreeNodes(ICollection treeNodes) 
        {
            HybridDictionary visitedChoices = new HybridDictionary(); 
            StringCollection duplicateChoices = new StringCollection();

            foreach(ChoiceTreeNode node in treeNodes)
            { 
                String key = ChoiceToUniqueIdentifier(node.Name, node.Argument);
                if(visitedChoices[key] == null) 
                { 
                    visitedChoices[key] = 1;
                } 
                else
                {
                    if((int)visitedChoices[key] == 1)
                    { 
                        duplicateChoices.Add(key);
 
                    } 
                    visitedChoices[key] = ((int)visitedChoices[key]) + 1;
                } 
            }
            return duplicateChoices;
        }
    } 
}

// 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