コード例 #1
0
        /// <summary>
        /// Handles the UIA version of The extended interface. event
        /// </summary>
        /// <param name="control">The UI Automation element</param>
        private static void UiaInvoke(BaseProdControl control)
        {
            AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent));
            LogController.ReceiveLogMessage(new LogMessage(CLICK_MSG + control.UIAElement.Current.Name));

            InvokePatternHelper.Invoke(control.UIAElement);
        }
コード例 #2
0
        private static void UiaSetValue(BaseProdControl control, double value)
        {
            LogController.ReceiveLogMessage(new LogMessage(value.ToString()));

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, RangeValuePattern.ValueProperty));
            RangeValuePatternHelper.SetValue(control.UIAElement, value);
        }
コード例 #3
0
        private static void UiaSelectMenuItem(BaseProdControl control, string[] itemPath)
        {
            AutomationElementCollection menuItems = UiaGetMenuItems(control);

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent));
            LogController.ReceiveLogMessage(new LogMessage(string.Join(",", itemPath)));
            ExpandMenuItem(menuItems, itemPath);
        }
コード例 #4
0
        private static void UiaSetSelectedItem(BaseProdControl control, string itemText)
        {
            LogController.ReceiveLogMessage(new LogMessage("Selecting " + itemText));

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementSelectedEvent));
            AutomationElement element = SelectionItemPatternHelper.FindItemByText(control.UIAElement, itemText);

            SelectionItemPatternHelper.SelectItem(element);
        }
コード例 #5
0
        private static void UiaSetSelectedIndex(BaseProdControl control, int index)
        {
            LogController.ReceiveLogMessage(new LogMessage("Selecting " + index));

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementSelectedEvent));
            AutomationElement indexedItem = SelectionItemPatternHelper.FindItemByIndex(control.UIAElement, index);

            SelectionItemPatternHelper.SelectItem(indexedItem);
        }
コード例 #6
0
        private static void UiaInvokeByAccessKey(BaseProdControl control, string keyCombination)
        {
            string cleaned = InternalUtilities.ConvertStringToSendKey(keyCombination);

            control.SetFocus();
            AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent));
            LogController.ReceiveLogMessage(new LogMessage(cleaned));
            InternalUtilities.SendKeysSetText(control.UIAElement, cleaned);
        }
コード例 #7
0
        /// <summary>
        /// Adds the list item to the current selection using UIA
        /// </summary>
        /// <param name="control">The base ProdUI control.</param>
        /// <param name="index">Zero based index of the item.</param>
        private static void UiaAddToSelection(BaseProdControl control, int index)
        {
            if (!UiaCanSelectMultiple(control))
            {
                throw new ProdOperationException("Does not support multiple selection");
            }

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementAddedToSelectionEvent));

            LogController.ReceiveLogMessage(new LogMessage("Adding " + index));
            SelectionItemPatternHelper.AddToSelection(control.UIAElement, index);
        }
コード例 #8
0
        private static void UiaAppendText(BaseProdControl control, string newText)
        {
            if (ValuePatternHelper.GetIsReadOnly(control.UIAElement))
            {
                throw new ProdOperationException("Control is Read Only");
            }

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, ValuePattern.ValueProperty));

            LogController.ReceiveLogMessage(new LogMessage("Appending: " + newText));
            ValuePatternHelper.AppendValue(control.UIAElement, newText);
        }
コード例 #9
0
        private static void UiaRemoveFromSelection(BaseProdControl control, string itemText)
        {
            if (!UiaCanSelectMultiple(control))
            {
                throw new ProdOperationException("Does not support multiple selection");
            }
            AutomationElement itemToSelect = SelectionItemPatternHelper.FindItemByText(control.UIAElement, itemText);

            AutomationEventVerifier.Register(new EventRegistrationMessage(control, SelectionItemPattern.ElementRemovedFromSelectionEvent));

            LogController.ReceiveLogMessage(new LogMessage("Removing " + itemText));
            SelectionItemPatternHelper.RemoveFromSelection(itemToSelect);
        }
コード例 #10
0
        private static void UiaInvokeByAccessKey(BaseProdControl control)
        {
            if (control.UIAElement.Current.AccessKey.Length == 0)
            {
                return;
            }
            string cleaned = InternalUtilities.ConvertStringToSendKey(control.UIAElement.Current.AccessKey);

            control.SetFocus();
            AutomationEventVerifier.Register(new EventRegistrationMessage(control, InvokePattern.InvokedEvent));
            LogController.ReceiveLogMessage(new LogMessage(cleaned));
            InternalUtilities.SendKeysSetText(control.UIAElement, cleaned);
        }
コード例 #11
0
 private static void UiaSetText(BaseProdControl control, string text)
 {
     LogController.ReceiveLogMessage(new LogMessage(text));
     AutomationEventVerifier.Register(new EventRegistrationMessage(control, ValuePattern.ValueProperty));
     ValuePatternHelper.SetValue(control.UIAElement, text);
 }
コード例 #12
0
 private static void UiaInsertText(BaseProdControl control, string newText, int index)
 {
     LogController.ReceiveLogMessage(new LogMessage("inserting " + newText));
     AutomationEventVerifier.Register(new EventRegistrationMessage(control, ValuePattern.ValueProperty));
     ValuePatternHelper.InsertValue(control.UIAElement, newText, index);
 }
コード例 #13
0
 private static void UiaSetToggleState(BaseProdControl control, ToggleState checkstate)
 {
     AutomationEventVerifier.Register(new EventRegistrationMessage(control, TogglePatternIdentifiers.ToggleStateProperty));
     LogController.ReceiveLogMessage(new LogMessage(checkstate.ToString()));
     TogglePatternHelper.SetToggleState(control.UIAElement, checkstate);
 }
コード例 #14
0
 private static void UiaToggleState(BaseProdControl control)
 {
     AutomationEventVerifier.Register(new EventRegistrationMessage(control, TogglePatternIdentifiers.ToggleStateProperty));
     LogController.ReceiveLogMessage(new LogMessage("Toggle"));
     TogglePatternHelper.Toggle(control.UIAElement);
 }