QueuePathEditor.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 / Services / Messaging / System / Messaging / Design / QueuePathEditor.cs / 1305376 / QueuePathEditor.cs

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

namespace System.Messaging.Design { 
    using System; 
    using System.Drawing;
    using System.Drawing.Design; 
    using System.Windows.Forms;
    using System.Windows.Forms.ComponentModel;
    using System.Windows.Forms.Design;
    using System.ComponentModel; 
    using System.ComponentModel.Design;
    using System.Messaging; 
 
    /// 
    ///  
    ///    [To be supplied.]
    /// 
    // permissions demanded by parent class
    [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Name="FullTrust")] 
 	[System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")]
	public class QueuePathEditor : UITypeEditor { 
 
        /// 
        ///  
        ///      Edits the given object value using the editor style provided by
        ///      GetEditorStyle.  A service provider is provided so that any
        ///      required editing services can be obtained.
        ///  
        public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) {
            if (provider != null) { 
                IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); 
                if (edSvc != null) {
                    QueuePathDialog dialog = new QueuePathDialog(provider); 
                    MessageQueue queue = null;
                    if (value is MessageQueue)
                        queue = (MessageQueue)value;
                    else if (value is string) 
                        queue = new MessageQueue((string)value);
                    else if (value != null) 
                        return value; 

                    if (queue != null) 
                        dialog.SelectQueue(queue);

                    IDesignerHost host = (IDesignerHost)provider.GetService(typeof(IDesignerHost));
                    DesignerTransaction trans = null; 
                    if (host != null)
                        trans = host.CreateTransaction(); 
 
                    try {
                        if ((context == null || context.OnComponentChanging()) && edSvc.ShowDialog(dialog) == DialogResult.OK) { 
                            if (dialog.Path != String.Empty) {
                                if (context.Instance is MessageQueue || context.Instance is MessageQueueInstaller)
                                    value = dialog.Path;
                                else { 
                                        value = MessageQueueConverter.GetFromCache(dialog.Path);
                                        if (value == null) { 
                                            value = new MessageQueue(dialog.Path); 
                                            MessageQueueConverter.AddToCache((MessageQueue)value);
                                            if (context != null) 
                                                context.Container.Add((IComponent)value);
                                        }
                                }
 
                                context.OnComponentChanged();
                            } 
                       } 
                    }
                    finally { 
                        if (trans != null) {
                            trans.Commit();
                        }
                    } 
                }
            } 
 
            return value;
        } 

        /// 
        /// 
        ///      Retrieves the editing style of the Edit method.  If the method 
        ///      is not supported, this will return None.
        ///  
        public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { 
            return UITypeEditorEditStyle.Modal;
        } 
    }
}


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