Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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");;
            });
        }
Пример #5
0
 object[]? ITableProvider.GetColumnHeaders()
 => AsArrayOfNativeAccessibles(publicITableProvider.GetColumnHeaders());
Пример #6
0
 public string [] GetColumnHeaderPaths()
 {
     return(AutomationBridge.Instance.GetElementPaths(provider.GetColumnHeaders()));
 }
Пример #7
0
        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);
            }
        }