public Atk.Object RefAt(int row, int column) { if (!AreRowColInBounds(row, column)) { return(null); } IRawElementProviderSimple[] headers = null; if (tableProvider != null) { headers = tableProvider.GetColumnHeaders(); } // Some controls will have column headers that need to // be mapped to row 0 if (row == 0 && headers != null) { if (column >= headers.Length) { return(null); } return(AutomationBridge.GetAdapterForProviderSemiLazy( headers [column])); } // GetItem indexes through only items, not headers, so // we need to remap the row number if (headers != null) { row -= 1; } IRawElementProviderSimple item; try { item = GridProvider.GetItem(row, column); } catch (ArgumentOutOfRangeException e) { Log.Debug(e); return(null); } if (item == null) { return(null); } return(AutomationBridge.GetAdapterForProviderSemiLazy(item)); }
public void ITableProviderTest() { IRawElementProviderFragmentRoot dataGridProvider; IRawElementProviderFragment child; GetDataGridAndFirstListItem(out dataGridProvider, out child); ITableProvider tableProvider = dataGridProvider.GetPatternProvider(TablePatternIdentifiers.Pattern.Id) as ITableProvider; Assert.IsNotNull(tableProvider, "Does not implement ITableProvider"); IRawElementProviderSimple header = dataGridProvider.Navigate(NavigateDirection.FirstChild); IRawElementProviderSimple[] headerItems = tableProvider.GetColumnHeaders(); Assert.IsNotNull(headerItems, "Returning null header items"); Assert.AreEqual(daysInWeek, headerItems.Length, "Returning incorrect number of header items"); for (int i = 0; i < headerItems.Length; i++) { TestHeaderItem(headerItems[i], header, i); } IRawElementProviderSimple[] rowHeaders = tableProvider.GetRowHeaders(); Assert.AreEqual(0, rowHeaders.Length); }
private static void HandleColumnHeadersProperty(ProxySimple el, IntPtr hwnd, int eventId) { ITableProvider table = el.GetPatternProvider(TablePattern.Pattern) as ITableProvider; if (table == null) { return; } RaisePropertyChangedEvent(el, TablePattern.ColumnHeadersProperty, table.GetColumnHeaders()); }
public void ITableProvider_Methods() { Calendar calendar = CreateConcreteFrameworkElement() as Calendar; AutomationPeer peer = FrameworkElementAutomationPeer.CreatePeerForElement(calendar); ITableProvider tableProvider = null; CreateAsyncTest(calendar, () => { Assert.IsNotNull(peer, "#0"); tableProvider = peer.GetPattern(PatternInterface.Selection) as ITableProvider; Assert.IsNotNull(tableProvider, "#1"); // ITableProvider.RowOrColumnMajor Assert.AreEqual(tableProvider.RowOrColumnMajor, RowOrColumnMajor.RowMajor, "RowOrColumnMajor #0"); // ITableProvider.GetRowHeaders IRawElementProviderSimple[] headers = tableProvider.GetRowHeaders(); Assert.IsNull(headers, "GetRowHeaders #1"); // ITableProvider.GetColumnHeaders calendar.DisplayMode = CalendarMode.Month; headers = tableProvider.GetColumnHeaders(); Assert.IsNotNull(headers, "GetColumnHeaders #2"); Assert.AreEqual(headers.Length, 7, "GetColumnHeader #3"); calendar.DisplayMode = CalendarMode.Decade; headers = tableProvider.GetColumnHeaders(); Assert.IsNull(headers, "GetColumnHeaders #4"); calendar.DisplayMode = CalendarMode.Year; headers = tableProvider.GetColumnHeaders(); Assert.IsNull(headers, "GetColumnHeaders #5");; }); }
object[]? ITableProvider.GetColumnHeaders() => AsArrayOfNativeAccessibles(publicITableProvider.GetColumnHeaders());
public string [] GetColumnHeaderPaths() { return(AutomationBridge.Instance.GetElementPaths(provider.GetColumnHeaders())); }
public void ListItemITableItemProviderTest() { IRawElementProviderFragmentRoot dataGridProvider; IRawElementProviderFragment child; GetDataGridAndFirstListItem(out dataGridProvider, out child); ITableProvider tableProvider = (ITableProvider)dataGridProvider.GetPatternProvider( TablePatternIdentifiers.Pattern.Id); IRawElementProviderSimple[] headerItems = tableProvider.GetColumnHeaders(); SelectionRange range = calendar.GetDisplayRange(false); int numChildren = (range.End - range.Start).Days; for (int i = 0; i < numChildren && child != null; i++) { TestProperty(child, AutomationElementIdentifiers.ControlTypeProperty, ControlType.ListItem.Id); ITableItemProvider itemProvider = child.GetPatternProvider( TableItemPatternIdentifiers.Pattern.Id) as ITableItemProvider; Assert.IsNotNull(itemProvider, "Does not implement ITableItemProvider"); // GetColumnHeaderItems IRawElementProviderSimple [] itemHeaderItems = itemProvider.GetColumnHeaderItems(); Assert.IsNotNull(itemHeaderItems, "No header items returned"); Assert.AreEqual(1, itemHeaderItems.Length, "Too many or too few header items returned"); MonthCalendarHeaderItemProvider headerItem = itemHeaderItems[0] as MonthCalendarHeaderItemProvider; Assert.IsNotNull(headerItem, "Header item is not a MonthCalendarHeaderItemProvider"); Assert.AreEqual(itemProvider.Column, headerItem.Index, "Header item returned does not have the same index as item's column"); Assert.AreEqual(headerItems[itemProvider.Column], headerItem, "Header item and header item at that index are not equal"); // GetRowHeaderItems IRawElementProviderSimple[] itemRowHeaderItems = itemProvider.GetRowHeaderItems(); Assert.IsNotNull(itemRowHeaderItems, "Item provider is returning null for row headers"); Assert.AreEqual(0, itemRowHeaderItems.Length, "Item provider is returning more than 0 row headers"); child = ((IRawElementProviderFragment)child) .Navigate(NavigateDirection.NextSibling); } }