public virtual TPatternInterface GetCurrentPattern <TPatternInterface>(classic.AutomationPattern pattern) where TPatternInterface : IBasePattern { switch (_innerElementType) { case InnerElementTypes.AutomationElementNet: if (Preferences.FromCache) { return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCachedPattern(pattern))); } else { return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCurrentPattern(pattern))); } // default: // case InnerElementTypes.AutomationElementCom: // // // 20131208 case InnerElementTypes.UiElement: // return Preferences.FromCache ? _elementHolderAdapter.GetCachedPattern(pattern) : _elementHolderAdapter.GetCurrentPattern(pattern); return(Preferences.FromCache ? default(TPatternInterface) : _elementHolderAdapter.GetCurrentPattern <TPatternInterface>(pattern)); // default: // return Preferences.FromCache ? _elementHolderNet.GetCachedPattern(pattern) : _elementHolderNet.GetCurrentPattern(pattern); default: if (Preferences.FromCache) { return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCachedPattern(pattern))); } else { return((TPatternInterface)AutomationFactory.GetPatternAdapter <TPatternInterface>(this, _elementHolderNet.GetCurrentPattern(pattern))); } } // return default(N); }
// not used // public static IUiEltCollection ConvertCmdletInputToCollectionAdapter(this ICollection inputArray) // { // IUiEltCollection resultCollection = // AutomationFactory.GetUiEltCollection(inputArray); // return resultCollection; // } public static IBasePattern[] ConvertAutomationPatternToBasePattern(this classic.AutomationPattern[] patterns, IUiElement element) { var resultList = new List <IBasePattern>(); foreach (classic.AutomationPattern pattern in patterns) { try { switch (pattern.ProgrammaticName.Replace("Identifiers.Pattern", string.Empty)) { case "DockPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IDockPattern>(element, pattern)); break; case "ExpandCollapsePattern": resultList.Add(AutomationFactory.GetPatternAdapter <IExpandCollapsePattern>(element, pattern)); break; case "GridItemPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IGridItemPattern>(element, pattern)); break; case "GridPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IGridPattern>(element, pattern)); break; case "InvokePattern": resultList.Add(AutomationFactory.GetPatternAdapter <IInvokePattern>(element, pattern)); break; case "RangeValuePattern": resultList.Add(AutomationFactory.GetPatternAdapter <IRangeValuePattern>(element, pattern)); break; case "ScrollItemPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IScrollItemPattern>(element, pattern)); break; case "ScrollPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IScrollPattern>(element, pattern)); break; case "SelectionItemPattern": resultList.Add(AutomationFactory.GetPatternAdapter <ISelectionItemPattern>(element, pattern)); break; case "SelectionPattern": resultList.Add(AutomationFactory.GetPatternAdapter <ISelectionPattern>(element, pattern)); break; case "TableItemPattern": resultList.Add(AutomationFactory.GetPatternAdapter <ITableItemPattern>(element, pattern)); break; case "TablePattern": resultList.Add(AutomationFactory.GetPatternAdapter <ITablePattern>(element, pattern)); break; case "TextPattern": resultList.Add(AutomationFactory.GetPatternAdapter <ITextPattern>(element, pattern)); break; case "TogglePattern": resultList.Add(AutomationFactory.GetPatternAdapter <ITogglePattern>(element, pattern)); break; case "TransformPattern": resultList.Add(AutomationFactory.GetPatternAdapter <ITransformPattern>(element, pattern)); break; case "ValuePattern": resultList.Add(AutomationFactory.GetPatternAdapter <IValuePattern>(element, pattern)); break; case "WindowPattern": resultList.Add(AutomationFactory.GetPatternAdapter <IWindowPattern>(element, pattern)); break; // default: // // break; } } catch { } } return(resultList.ToArray()); }