public static A11yPattern GetPatternInstance()

in src/Desktop/UIAutomation/A11yPatternFactory.cs [22:121]


        public static A11yPattern GetPatternInstance(A11yElement e, IUIAutomationElement uia, int id, string name)
        {
            if (uia == null) throw new ArgumentNullException(nameof(uia));

            try
            {
                dynamic pt = null;

                if (PatternType.GetInstance().Exists(id))
                {
                    pt = uia.GetCachedPattern(id);
                }

                if (pt != null)
                {
                    switch (id)
                    {
                        case PatternType.UIA_AnnotationPatternId:
                            return new AnnotationPattern(e, pt);
                        case PatternType.UIA_CustomNavigationPatternId:
                            return new CustomNavigationPattern(e, pt);
                        case PatternType.UIA_DockPatternId:
                            return new DockPattern(e, pt);
                        case PatternType.UIA_DragPatternId:
                            return new DragPattern(e, pt);
                        case PatternType.UIA_DropTargetPatternId:
                            return new DropTargetPattern(e, pt);
                        case PatternType.UIA_ExpandCollapsePatternId:
                            return new ExpandCollapsePattern(e, pt);
                        case PatternType.UIA_GridItemPatternId:
                            return new GridItemPattern(e, pt);
                        case PatternType.UIA_GridPatternId:
                            return new GridPattern(e, pt);
                        case PatternType.UIA_InvokePatternId:
                            return new InvokePattern(e, pt);
                        case PatternType.UIA_ItemContainerPatternId:
                            return new ItemContainerPattern(e, pt);
                        case PatternType.UIA_LegacyIAccessiblePatternId:
                            return new LegacyIAccessiblePattern(e, pt);
                        case PatternType.UIA_MultipleViewPatternId:
                            return new MultipleViewPattern(e, pt);
                        case PatternType.UIA_ObjectModelPatternId:
                            return new ObjectModelPattern(e, pt);
                        case PatternType.UIA_RangeValuePatternId:
                            return new RangeValuePattern(e, pt);
                        case PatternType.UIA_ScrollItemPatternId:
                            return new ScrollItemPattern(e, pt);
                        case PatternType.UIA_ScrollPatternId:
                            return new ScrollPattern(e, pt);
                        case PatternType.UIA_SelectionItemPatternId:
                            return new SelectionItemPattern(e, pt);
                        case PatternType.UIA_SelectionPatternId:
                            return new SelectionPattern(e, pt);
                        case PatternType.UIA_SelectionPattern2Id:
                            return new SelectionPattern2(e, pt);
                        case PatternType.UIA_SpreadsheetPatternId:
                            return new SpreadsheetPattern(e, pt);
                        case PatternType.UIA_SpreadsheetItemPatternId:
                            return new SpreadsheetItemPattern(e, pt);
                        case PatternType.UIA_StylesPatternId:
                            return new StylesPattern(e, pt);
                        case PatternType.UIA_SynchronizedInputPatternId:
                            return new SynchronizedInputPattern(e, pt);
                        case PatternType.UIA_TableItemPatternId:
                            return new TableItemPattern(e, pt);
                        case PatternType.UIA_TablePatternId:
                            return new TablePattern(e, pt);
                        case PatternType.UIA_TextChildPatternId:
                            return new TextChildPattern(e, pt);
                        case PatternType.UIA_TextEditPatternId:
                            return new TextEditPattern(e, pt);
                        case PatternType.UIA_TextPatternId:
                            return new TextPattern(e, pt);
                        case PatternType.UIA_TextPattern2Id:
                            return new TextPattern2(e, pt);
                        case PatternType.UIA_TogglePatternId:
                            return new TogglePattern(e, pt);
                        case PatternType.UIA_TransformPatternId:
                            return new TransformPattern(e, pt);
                        case PatternType.UIA_TransformPattern2Id:
                            return new TransformPattern2(e, pt);
                        case PatternType.UIA_ValuePatternId:
                            return new ValuePattern(e, pt);
                        case PatternType.UIA_VirtualizedItemPatternId:
                            return new VirtualizedItemPattern(e, pt);
                        case PatternType.UIA_WindowPatternId:
                            return new WindowPattern(e, pt);
                    }
                }
                return new UnKnownPattern(e, id, name);
            }
#pragma warning disable CA1031 // Do not catch general exception types
            catch (Exception ex)
            {
                ex.ReportException();

                return null;
            }
#pragma warning restore CA1031 // Do not catch general exception types
        }