// </Snippet1035>

        // <Snippet104>
        ///--------------------------------------------------------------------
        /// <summary>
        /// Sets the current view of a target.
        /// </summary>
        /// <param name="multipleViewControl">
        /// The current multiple view control.
        /// </param>
        /// <param name="viewID">
        /// The view identifier from the supported views collection.
        /// </param>
        ///--------------------------------------------------------------------
        private void SetView(AutomationElement multipleViewControl, int viewID)
        {
            if (multipleViewControl == null)
            {
                throw new ArgumentNullException(
                          "AutomationElement parameter must not be null.");
            }

            // Get a MultipleViewPattern from the current control.
            MultipleViewPattern multipleViewPattern =
                GetMultipleViewPattern(multipleViewControl);

            if (multipleViewPattern != null)
            {
                try
                {
                    multipleViewPattern.SetCurrentView(viewID);
                }
                // viewID is not a member of the supported views collection
                catch (ArgumentException)
                {
                    // TO DO: error handling
                }
            }
        }
        // </Snippet104>

        // <Snippet105>
        ///--------------------------------------------------------------------
        /// <summary>
        /// Gets the name of the current view of a target.
        /// </summary>
        /// <param name="multipleViewControl">
        /// The current multiple view control.
        /// </param>
        /// <returns>
        /// The current view name.
        /// </returns>
        ///--------------------------------------------------------------------
        private string ViewName(AutomationElement multipleViewControl)
        {
            if (multipleViewControl == null)
            {
                throw new ArgumentNullException(
                          "AutomationElement parameter must not be null.");
            }

            // Get a MultipleViewPattern from the current control.
            MultipleViewPattern multipleViewPattern =
                GetMultipleViewPattern(multipleViewControl);

            if (multipleViewControl != null)
            {
                try
                {
                    int viewID =
                        (int)multipleViewControl.GetCurrentPropertyValue(
                            MultipleViewPattern.CurrentViewProperty);
                    return(multipleViewPattern.GetViewName(viewID));
                }
                catch (ArgumentException)
                {
                    // TO DO: error handling
                }
            }
            return(null);
        }
        public void MultipleViewPatternCachedTest()
        {
            AutomationElement itemsView = ExplorerTargetTests.explorerHost.Element.FindFirst(TreeScope.Subtree,
                                                                                             new PropertyCondition(AutomationElement.ClassNameProperty, "UIItemsView"));

            Assert.IsNotNull(itemsView);

            MultipleViewPattern multiView = (MultipleViewPattern)itemsView.GetCurrentPattern(MultipleViewPattern.Pattern);

            int[] supportedViews = multiView.Current.GetSupportedViews();
            Assert.IsNotNull(supportedViews.Length > 0);
            bool inSupportedViews = false;

            foreach (int view in supportedViews)
            {
                if (view == multiView.Current.CurrentView)
                {
                    inSupportedViews = true;
                    break;
                }
                string viewName = multiView.GetViewName(view);
                Assert.IsTrue(viewName.Length > 0);
            }
            Assert.IsTrue(inSupportedViews);
        }
Esempio n. 4
0
 /// -------------------------------------------------------------------
 /// <summary></summary>
 /// -------------------------------------------------------------------
 public MultipleViewTests(AutomationElement element, TestPriorities priority, string dirResults, bool testEvents, TypeOfControl typeOfControl, IApplicationCommands commands)
     :
     base(element, TestSuite, priority, typeOfControl, TypeOfPattern.MultipleView, dirResults, testEvents, commands)
 {
     m_pattern = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);
     if (m_pattern == null)
     {
         throw new Exception(Helpers.PatternNotSupported);
     }
 }
Esempio n. 5
0
        public string GetViewName(int viewId, bool log)
        {
            if (log)
            {
                procedureLogger.Action(string.Format("Get the view name which viewID is {0}.", viewId));
            }

            MultipleViewPattern mvp = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);

            return(mvp.GetViewName(viewId));
        }
Esempio n. 6
0
        public static bool TryGetMultipleViewPattern(this AutomationElement element, out MultipleViewPattern result)
        {
            if (element.TryGetCurrentPattern(System.Windows.Automation.MultipleViewPattern.Pattern, out var pattern))
            {
                result = (MultipleViewPattern)pattern;
                return(true);
            }

            result = null;
            return(false);
        }
Esempio n. 7
0
        public void SetCurrentView(int viewId, bool log)
        {
            if (log)
            {
                procedureLogger.Action(string.Format("Set current view to {0}.", GetViewName(viewId)));
            }

            MultipleViewPattern mvp = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);

            mvp.SetCurrentView(viewId);
        }
        // </Snippet103>

        // <Snippet1035>
        ///--------------------------------------------------------------------
        /// <summary>
        /// Gets the current view identifier from a target.
        /// </summary>
        /// <param name="multipleViewPattern">
        /// The control pattern of interest.
        /// </param>
        /// <returns>
        /// The current view identifier.
        /// </returns>
        ///--------------------------------------------------------------------
        private int GetCurrentViewFromPattern(
            MultipleViewPattern multipleViewPattern)
        {
            if (multipleViewPattern == null)
            {
                throw new ArgumentNullException(
                          "MultipleViewPattern parameter must not be null.");
            }

            return(multipleViewPattern.Current.CurrentView);
        }
        // </Snippet102>

        // <Snippet1025>
        ///--------------------------------------------------------------------
        /// <summary>
        /// Gets the collection of currently supported views from a target.
        /// </summary>
        /// <param name="multipleViewPattern">
        /// The MultipleViewPattern obtained from a multiple view control.
        /// </param>
        /// <returns>
        /// A collection of identifiers representing the supported views.
        /// </returns>
        ///--------------------------------------------------------------------
        private int[] GetSupportedViewsFromControl(
            MultipleViewPattern multipleViewPattern)
        {
            if (multipleViewPattern == null)
            {
                throw new ArgumentNullException(
                          "MultipleViewPattern parameter must not be null.");
            }

            return(multipleViewPattern.Current.GetSupportedViews());
        }
Esempio n. 10
0
 public void NotEnabledTest()
 {
     RunCommand("disable list view");
     listView1Element = testFormElement.FindFirst(TreeScope.Children,
                                                  new PropertyCondition(AEIds.NameProperty, "listView1"));
     Assert.IsNotNull(listView1Element);
     pattern = (MultipleViewPattern)listView1Element.GetCurrentPattern(MultipleViewPattern.Pattern);
     // We should expect and ElementNotEnabledException here
     // But since on Windows Winforms there isn't expcetion fired, then we also assert no exception here
     pattern.SetCurrentView(1);
     RunCommand("enable list view");
     pattern = (MultipleViewPattern)listView1Element.GetCurrentPattern(MultipleViewPattern.Pattern);
 }
        /// <summary>
        /// Constructor.
        /// </summary>

        public UIAMultipleViewPattern_snippets()
        {
            AutomationElement targetWindow =
                StartTargetApp(System.Windows.Forms.Application.StartupPath +
                               "\\MultipleViewPattern_snip_Target.exe");

            targetWindow = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(
                                                                       AutomationElement.NameProperty, "C:\\Documents and Settings\\kbridge\\Desktop\\UISpy"));
            targetControl = FindAutomationElement(targetWindow);

            MultipleViewPattern multipleViewPattern =
                GetMultipleViewPattern(targetControl[0]);

            int i = GetCurrentViewProperty(targetControl[0]);
        }
Esempio n. 12
0
        public void SetCurrentView(int viewId, bool log)
        {
            if (!this.SupportedViews.Contains(viewId))
            {
                throw new ArgumentOutOfRangeException();
            }

            if (log)
            {
                procedureLogger.Action(string.Format("Set current view to {0}.", GetViewName(viewId)));
            }

            MultipleViewPattern mvp = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);

            mvp.SetCurrentView(viewId);
        }
        // </Snippet100>

        // <Snippet101>
        ///--------------------------------------------------------------------
        /// <summary>
        /// Obtains a MultipleViewPattern control pattern from an
        /// automation element.
        /// </summary>
        /// <param name="targetControl">
        /// The automation element of interest.
        /// </param>
        /// <returns>
        /// A MultipleViewPattern object.
        /// </returns>
        ///--------------------------------------------------------------------
        private MultipleViewPattern GetMultipleViewPattern(
            AutomationElement targetControl)
        {
            MultipleViewPattern multipleViewPattern = null;

            try
            {
                multipleViewPattern =
                    targetControl.GetCurrentPattern(
                        MultipleViewPattern.Pattern)
                    as MultipleViewPattern;
            }
            // Object doesn't support the MultipleViewPattern control pattern
            catch (InvalidOperationException)
            {
                return(null);
            }

            return(multipleViewPattern);
        }
        /// <summary>
        /// Gets the name of the view.
        /// </summary>
        /// <param name="viewId">The control-specific view identifier.</param>
        /// <returns>The control-specific view name</returns>
        internal static string GetViewName(AutomationElement control, int viewId)
        {
            MultipleViewPattern pattern = (MultipleViewPattern)CommonUIAPatternHelpers.CheckPatternSupport(MultipleViewPattern.Pattern, control);

            return(pattern.GetViewName(viewId));
        }
Esempio n. 15
0
 protected override void CustomFixtureSetUp()
 {
     base.CustomFixtureSetUp();
     pattern = (MultipleViewPattern)listView1Element.GetCurrentPattern(MultipleViewPattern.Pattern);
     Assert.IsNotNull(pattern);
 }
        /// <summary>
        /// Sets the current view.
        /// </summary>
        /// <param name="control">The control.</param>
        /// <param name="viewId">A control-specific view identifier.</param>
        internal void SetCurrentView(AutomationElement control, int viewId)
        {
            MultipleViewPattern pattern = (MultipleViewPattern)CommonUIAPatternHelpers.CheckPatternSupport(MultipleViewPattern.Pattern, control);

            pattern.SetCurrentView(viewId);
        }
 public MultipleViewPatternPropertyObject(MultipleViewPattern pattern)
 {
     this._pattern = pattern;
 }
Esempio n. 18
0
        public string GetViewName(int viewId)
        {
            MultipleViewPattern mvp = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);

            return(mvp.GetViewName(viewId));
        }
Esempio n. 19
0
        public int [] GetSupportedViews()
        {
            MultipleViewPattern mvp = (MultipleViewPattern)element.GetCurrentPattern(MultipleViewPattern.Pattern);

            return(mvp.Current.GetSupportedViews());
        }
        /// <summary>
        /// Gets the supported view ids.
        /// </summary>
        /// <param name="control">The control.</param>
        /// <returns>The current views available</returns>
        internal int[] GetSupportedViewIds(AutomationElement control)
        {
            MultipleViewPattern pattern = (MultipleViewPattern)CommonUIAPatternHelpers.CheckPatternSupport(MultipleViewPattern.Pattern, control);

            return((int[])control.GetCurrentPropertyValue(MultipleViewPattern.SupportedViewsProperty));
        }