Click here to Skip to main content
15,885,767 members
Articles / DevOps / Testing

Automation Enabler PlugIn - Exposes Inaccessible Elements to UI Automation Framework

Rate me:
Please Sign up or sign in to vote.
4.68/5 (7 votes)
20 Jun 2011CPOL7 min read 36.5K   921   24  
A reusable plug-in framework which exposes inaccessible elements to UI Automation framework. A must for .NET 2.0 WinForm container controls
using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;

namespace TreeControl
{
    /// <summary>
    /// Provides data for the HeaderedItem.NodeClicked events.
    /// </summary>
    public class NodeClickedEventArgs : EventArgs
    {
        #region Fields
        private string myId;
        private string myParentId;
        private string myGrandParentId;
        private bool myIsPause;
        #endregion

        #region Constructors
        /// <summary>
        /// Initializes a new instance of the NodeClickedEventArgs class.
        /// </summary>
        /// <param name="id">ID of the HeaderedItem</param>
        public NodeClickedEventArgs(string id)
            : this(id, null, null, false)
        {

        }

        /// <summary>
        /// Initializes a new instance of the NodeClickedEventArgs class.
        /// </summary>
        /// <param name="id">ID of the HeaderedItem</param>
        /// <param name="parentId">ID of the Parent of HeaderedItem</param>
        public NodeClickedEventArgs(string id, string parentId)
            : this(id, parentId, null, false)
        {

        }

        /// <summary>
        /// Initializes a new instance of the NodeClickedEventArgs class.
        /// </summary>
        /// <param name="id">ID of the HeaderedItem</param>
        /// <param name="parentId">ID of the Parent of HeaderedItem</param>
        /// <param name="isPause">Indicates whether pause command is active</param>
        public NodeClickedEventArgs(string id, string parentId, bool isPause)
            : this(id, parentId, null, isPause)
        {

        }

        /// <summary>
        /// Initializes a new instance of the NodeClickedEventArgs class.
        /// </summary>
        /// <param name="id">ID of the HeaderedItem</param>
        /// <param name="parentId">ID of the Parent of HeaderedItem</param>
        /// <param name="grandparentId">ID of the Parent of HeaderedItem's Parent</param>
        public NodeClickedEventArgs(string id, string parentId, string grandparentId)
            : this(id, parentId, grandparentId, false)
        {

        }

        /// <summary>
        /// Initializes a new instance of the NodeClickedEventArgs class.
        /// </summary>
        /// <param name="id">ID of the HeaderedItem</param>
        /// <param name="parentId">ID of the Parent of HeaderedItem</param>
        /// <param name="grandparentId">ID of the Parent of HeaderedItem's Parent</param>
        /// <param name="isPause">Indicates whether pause command is active</param>
        public NodeClickedEventArgs(string id, string parentId, string grandparentId, bool isPause)
        {


            myId = id;
            myParentId = parentId;
            myGrandParentId = grandparentId;
            myIsPause = isPause;


        }

        #endregion

        #region Properties
        /// <summary>
        /// Gets whether the pause command is active
        /// </summary>
        public bool IsPause
        {
            get { return myIsPause; }
        }

        /// <summary>
        /// Gets the ID of the HeaderedItem
        /// </summary>
        public string Id
        {
            get { return myId; }
        }

        /// <summary>
        /// Gets the ID of the Parent of HeaderedItem
        /// </summary>
        public string ParentId
        {
            get { return myParentId; }
        }

        /// <summary>
        /// Get the ID of Parent of HeaderedItem's Parent
        /// </summary>
        public string GrandparentId
        {
            get
            {
                return myGrandParentId;
            }
        }

        #endregion
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Philips
India India
Have been working with computers since the early 00's. Since then I've been building, fixing, configuring, installing, coding and designing with them. At present I mainly code windows applications in C#, WCF, WPF and SQL. I'm very interested in Design Patterns and try and use these generic principles in all new projects to create truly n-tier architectures. Also I like to code for making the User Interface very attractive...

Comments and Discussions