private static void NativeSetSelectedIndexes(BaseProdControl control, IEnumerable <int> indexes)
 {
     foreach (int index in indexes)
     {
         ProdListBoxNative.SetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, index);
     }
 }
Exemplo n.º 2
0
        private static ToggleState UiaGetToggleState(BaseProdControl control)
        {
            ToggleState ret = TogglePatternHelper.GetToggleState(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage(ret.ToString()));
            return(ret);
        }
        private static bool UiaGetIsSelected(BaseProdControl control)
        {
            bool retVal = SelectionItemPatternHelper.IsItemSelected(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString()));
            return(retVal);
        }
Exemplo n.º 4
0
        private static AutomationElement UiaGetItem(BaseProdControl control, int row, int column)
        {
            AutomationElement retVal = GridPatternHelper.GetItem(control.UIAElement, row, column);

            LogController.ReceiveLogMessage(new LogMessage(retVal.Current.Name));
            return(retVal);
        }
Exemplo n.º 5
0
        private static double UiaGetSmallChange(BaseProdControl control)
        {
            double retVal = RangeValuePatternHelper.GetSmallChange(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString()));
            return(retVal);
        }
Exemplo n.º 6
0
        private static int UiaGetRowCount(BaseProdControl control)
        {
            int retVal = GridPatternHelper.GetRowCount(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString()));
            return(retVal);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Waits a specified amount of time for the specified control to be ready for interaction.
        /// </summary>
        /// <param name="control">The UI Automation element</param>
        /// <param name="delay">Time, in seconds, to wait for window to exist. -1 to wait forever</param>
        /// <returns>
        ///   <c>true</c> if ready, <c>false</c> if not ready within time limit
        /// </returns>
        /// <exception cref="ProdOperationException">Examine inner exception</exception>
        public static bool ControlWaitReady(BaseProdControl control, int delay)
        {
            int tryCounter = 0;

            try
            {
                while (tryCounter != delay || delay == -1)
                {
                    if (control.UIAElement.Current.IsEnabled)
                    {
                        return(true);
                    }
                    Thread.Sleep(1000);
                    tryCounter++;
                }

                return(false);
            }
            catch (InvalidOperationException err)
            {
                throw new ProdOperationException(err.Message, err);
            }
            catch (ElementNotAvailableException err)
            {
                throw new ProdOperationException(err.Message, err);
            }
            catch (ArgumentException err)
            {
                throw new ProdOperationException(err.Message, err);
            }
        }
Exemplo n.º 8
0
        private static RowOrColumnMajor UiaGetRowOrColumnMajor(BaseProdControl control)
        {
            RowOrColumnMajor retVal = TablePatternHelper.GetRowOrColumnMajor(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString()));
            return(retVal);
        }
Exemplo n.º 9
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);
        }
        private static int UiaGetItemCount(BaseProdControl control)
        {
            AutomationElementCollection convRet = SelectionItemPatternHelper.GetListItems(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage("Items: " + convRet.Count));
            return(convRet.Count);
        }
Exemplo n.º 11
0
        /// <summary>
        /// inserts the supplied string to the existing textBox text
        /// </summary>
        /// <param name="extension">The extended interface.</param>
        /// <param name="control">The UI Automation element</param>
        /// <param name="newText">Text to append to TextBox value</param>
        /// <param name="index">Zero based index of string to insert text into</param>
        public static void InsertTextHook(this ValueAdapter extension, BaseProdControl control, string newText, int index)
        {
            if ((bool)control.UIAElement.GetCurrentPropertyValue(ValuePattern.IsReadOnlyProperty))
            {
                throw new ProdOperationException("TextBox is Read Only");
            }

            try
            {
                UiaInsertText(control, newText, index);
            }
            catch (ArgumentNullException err)
            {
                throw new ProdOperationException(err);
            }
            catch (ElementNotAvailableException err)
            {
                throw new ProdOperationException(err);
            }
            catch (InvalidOperationException)
            {
                /* now try a native SendMessage */
                NativeInsertText(control, newText, index);
            }
        }
Exemplo n.º 12
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);
        }
Exemplo n.º 13
0
        private static string UiaGetText(BaseProdControl control)
        {
            string ret = ValuePatternHelper.GetValue(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage("String: " + ret));
            return(ret);
        }
Exemplo n.º 14
0
        private static int UiaGetRowSpan(BaseProdControl control)
        {
            int retVal = TableItemPatternHelper.GetRowSpan(control.UIAElement);

            LogController.ReceiveLogMessage(new LogMessage("Row Span: " + retVal));

            return(retVal);
        }
        private static int UiaSelectedIndex(BaseProdControl control)
        {
            AutomationElement[] element = SelectionPatternHelper.SelectedItems(control.UIAElement);
            int retVal = SelectionItemPatternHelper.FindIndexByItem(control.UIAElement, element[0].Current.Name);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString(CultureInfo.CurrentCulture)));
            return(retVal);
        }
        /// <summary>
        /// Gets selection status of the item.
        /// </summary>
        /// <param name="control">The UI Automation element</param>
        /// <param name="text">The text.</param>
        /// <returns></returns>
        private static bool UiaIsItemSelected(BaseProdControl control, string text)
        {
            AutomationElement element = SelectionItemPatternHelper.FindItemByText(control.UIAElement, text);
            bool retVal = SelectionItemPatternHelper.IsItemSelected(element);

            LogController.ReceiveLogMessage(new LogMessage(retVal.ToString()));
            return(retVal);
        }
Exemplo n.º 17
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);
        }
Exemplo n.º 18
0
        private static int UiaGetLength(BaseProdControl control)
        {
            string txt    = ValuePatternHelper.GetValue(control.UIAElement);
            int    retVal = txt.Length;

            LogController.ReceiveLogMessage(new LogMessage("Length: " + retVal));
            return(retVal);
        }
Exemplo n.º 19
0
        private static double NativeGetValue(BaseProdControl control)
        {
            if (control.UIAElement.Current.ControlType == ControlType.Spinner)
            {
                return(ProdSliderNative.GetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
            }

            return(ProdSliderNative.GetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
        }
Exemplo n.º 20
0
        private static void NativeSetValue(BaseProdControl control, double value)
        {
            if (control.UIAElement.Current.ControlType == ControlType.Spinner)
            {
                ProdSpinnerNative.SetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, value);
            }

            ProdSliderNative.SetValueNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, value);
        }
        /// <summary>
        /// Natives the get items.
        /// </summary>
        /// <param name="control">The control.</param>
        /// <returns></returns>
        private static Collection <object> NativeGetItems(BaseProdControl control)
        {
            if (control.UIAElement.Current.ControlType == ControlType.ComboBox)
            {
                return(ProdComboBoxNative.GetItemsNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
            }

            return(ProdListBoxNative.GetItemsNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
        }
        private static Collection <object> UiaGetItems(BaseProdControl control)
        {
            AutomationElementCollection convRet = SelectionItemPatternHelper.GetListItems(control.UIAElement);

            Collection <object> retVal = InternalUtilities.AutomationCollToObjectList(convRet);

            LogController.ReceiveLogMessage(new LogMessage("List Items: ", retVal));
            return(retVal);
        }
        private static void NativeSetSelectedItem(BaseProdControl control, string itemText)
        {
            if (control.UIAElement.Current.ControlType == ControlType.ComboBox)
            {
                ProdComboBoxNative.SelectItemNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, itemText);
            }

            ProdListBoxNative.SelectItemNative((IntPtr)control.UIAElement.Current.NativeWindowHandle, itemText);
        }
        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);
        }
Exemplo n.º 25
0
        private static AutomationElement[] UiaGetRowHeaders(BaseProdControl control)
        {
            AutomationElement[] retVal  = TableItemPatternHelper.GetRowHeaderItems(control.UIAElement);
            Collection <object> retList = new Collection <object>(retVal);

            LogController.ReceiveLogMessage(new LogMessage("Headers", retList));

            return(retVal);
        }
Exemplo n.º 26
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);
        }
        private static int NativeSelectedIndex(BaseProdControl control)
        {
            if (control.UIAElement.Current.ControlType == ControlType.ComboBox)
            {
                return(ProdComboBoxNative.GetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
            }

            return(ProdListBoxNative.GetSelectedIndexNative((IntPtr)control.UIAElement.Current.NativeWindowHandle));
        }
        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);
        }
 private static int UiaGetSelectedItemCount(BaseProdControl control)
 {
     if (!UiaCanSelectMultiple(control))
     {
         throw new ProdOperationException("Does not support multiple selection");
     }
     AutomationElement[] selectedItems = SelectionPatternHelper.SelectedItems(control.UIAElement);
     LogController.ReceiveLogMessage(new LogMessage("Count: " + selectedItems.Length));
     return(selectedItems.Length);
 }
Exemplo n.º 30
0
        /// <summary>
        /// Send the BM_Click message to a button control
        /// </summary>
        /// <param name="control">The UI Automation element</param>
        private static void NativeInvoke(BaseProdControl control)
        {
            if (control.UIAElement.Current.ControlType != ControlType.Button)
            {
                return;
            }

            /* should throw with no handle */
            NativeInvokeHelper.Invoke(control);
        }