CatchDesigner.xaml.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 / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Core / Presentation / CatchDesigner.xaml.cs / 1305376 / CatchDesigner.xaml.cs

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

namespace System.Activities.Core.Presentation 
{
    using System; 
    using System.Activities; 
    using System.Activities.Presentation;
    using System.Activities.Presentation.View; 
    using System.Activities.Presentation.Metadata;
    using System.Activities.Presentation.Model;
    using System.Activities.Statements;
    using System.ComponentModel; 
    using System.Diagnostics;
    using System.Runtime; 
    using System.Windows; 
    using System.Windows.Input;
 

    /// 
    /// Interaction logic for CatchDesigner.xaml
    ///  
    partial class CatchDesigner
    { 
        string exceptionTypeShortName = null; 
        string exceptionTypeFullName = null;
 
        public CatchDesigner()
        {
            InitializeComponent();
 
            this.Loaded += (sender, e) =>
            { 
                Selection selection = this.Context.Items.GetValue(); 
                if (selection != null)
                { 
                    ModelItem primarySelection = selection.PrimarySelection;
                    this.ExpandState = TryCatchDesigner.IsDescendantOfCatch(this.ModelItem, primarySelection);

                    if (this.ExpandState) 
                    {
                        // If current focus is at another part, we need to focus this designer 
                        // to trigger selection changed, then this part will expand and another 
                        // expanded part will collapse. Then we focus on the activity it contains
                        // if there is one. 
                        Keyboard.Focus((IInputElement)this.ModelItem.View);
                        if (primarySelection.View != null && this.ModelItem != primarySelection)
                        {
                            Keyboard.Focus((IInputElement)primarySelection.View); 
                        }
                    } 
                } 
            };
        } 

        internal static void RegisterMetadata(AttributeTableBuilder builder)
        {
            Type type = typeof(Catch<>); 
            builder.AddCustomAttributes(type, new DesignerAttribute(typeof(CatchDesigner)));
            builder.AddCustomAttributes(type, type.GetProperty("Action"), BrowsableAttribute.No); 
            builder.AddCustomAttributes(type, new ActivityDesignerOptionsAttribute { AllowDrillIn = false }); 
        }
 
        public string ExceptionTypeShortName
        {
            get
            { 
                if (this.exceptionTypeShortName == null)
                { 
                    this.exceptionTypeShortName = TypeNameHelper.GetDisplayName((Type)this.ModelItem.Properties["ExceptionType"].Value.GetCurrentValue(), false); 
                }
                return this.exceptionTypeShortName; 
            }
        }

        public string ExceptionTypeFullName 
        {
            get 
            { 
                if (this.exceptionTypeFullName == null)
                { 
                    this.exceptionTypeFullName = TypeNameHelper.GetDisplayName((Type)this.ModelItem.Properties["ExceptionType"].Value.GetCurrentValue(), true);
                }
                return this.exceptionTypeFullName;
            } 
        }
 
        protected override void OnMouseDown(MouseButtonEventArgs e) 
        {
            if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2) 
            {
                SwitchTryCatchDesignerHelper.MakeParentRootDesigner(this);
                e.Handled = true;
            } 
            else if (e.LeftButton == MouseButtonState.Pressed)
            { 
                Keyboard.Focus(this); 
                e.Handled = true;
            } 
            else if (e.RightButton == MouseButtonState.Pressed)
            {
                if (this.ShowExpanded)
                { 
                    Keyboard.Focus(this);
                } 
                e.Handled = true; 
            }
        } 

        protected override void OnMouseUp(MouseButtonEventArgs e)
        {
            // avoid context menu upon right-click when it's collapsed 
            if (!this.ShowExpanded && e.RightButton == MouseButtonState.Released)
            { 
                e.Handled = true; 
            }
        } 

        protected override string GetAutomationIdMemberName()
        {
            return PropertyNames.ExceptionType; 
        }
    } 
} 

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