Пример #1
0
 public override void BringCellToVisible(TabularPosition position)
 {
     if ((!position.IsEmpty && (position.Area == SheetArea.Cells)) && (_excel.ActiveSheet != null))
     {
         NavigatorHelper.BringCellToVisible(_excel, position.Row, position.Column);
     }
 }
Пример #2
0
        /// <summary>
        /// Gets the search results to be displayed on the right side of the ItemPicker.
        /// </summary>
        /// <param name="context">Describes the situation in which the ItemPicker is being
        /// displayed to the user.</param>
        /// <param name="selectedNode">The node selected on the left side of the ItemPicker.</param>
        /// <param name="searchText">The search text entered by the user.</param>
        /// <returns></returns>
        public Collection <Node> GetSearchResults(ItemPickerContext context, Node selectedNode, string searchText)
        {
            var client    = selectedNode.GetClient();
            var navigator = new NavigatorHelper(client);

            var provider = selectedNode as IVersionableProvider;
            Collection <Node> results = null;

            if (provider != null)
            {
                // If an item is selected in the navigator, find items of the target type within that selected item.
                results = navigator.FindItems(provider.Metadata.CompositeId, context.TypeToSelect, selectedNode, false);
            }
            else
            {
                // No item is selected in the navigator, so search the entire repository.
                results = navigator.FindItems(context.TypeToSelect, selectedNode, false);
            }

            return(results);
        }
Пример #3
0
 public override void ScrollToPreviousPageOfRows()
 {
     NavigatorHelper.ScrollToPreviousPageOfRows(_excel);
 }
Пример #4
0
 public override void ScrollToNextPageOfRows()
 {
     NavigatorHelper.ScrollToNextPageOfRows(_excel);
 }
Пример #5
0
        void ShowColumnRangeGroup(Excel excel)
        {
            int index = _columnExpandExtent.Index;

            if ((index >= 0) && (index < _sheet.ColumnCount))
            {
                ViewportInfo viewportInfo = excel.GetViewportInfo();
                if (excel.ActiveSheet.ColumnRangeGroup.Direction == RangeGroupDirection.Forward)
                {
                    RangeGroupInfo info2 = _sheet.ColumnRangeGroup.Find(index - 1, _columnExpandExtent.Level);
                    if (info2 != null)
                    {
                        int start         = info2.Start;
                        int rightColumn   = index;
                        int viewportIndex = _columnExpandExtent.ViewportIndex;
                        if (_sheet.ColumnRangeGroup.Data.GetCollapsed(index))
                        {
                            if ((viewportIndex < 0) || (viewportIndex >= viewportInfo.ColumnViewportCount))
                            {
                                return;
                            }
                            start = index;
                        }
                        else
                        {
                            if (viewportIndex < 0)
                            {
                                return;
                            }
                            if (viewportIndex == 0)
                            {
                                if (start < excel.ActiveSheet.FrozenColumnCount)
                                {
                                    start = excel.ActiveSheet.FrozenColumnCount;
                                }
                            }
                            else if (viewportIndex >= viewportInfo.ColumnViewportCount)
                            {
                                if (start >= (excel.ActiveSheet.ColumnCount - excel.ActiveSheet.FrozenTrailingColumnCount))
                                {
                                    return;
                                }
                                start       = Math.Max(start, excel.ActiveSheet.FrozenColumnCount);
                                rightColumn = (excel.ActiveSheet.ColumnCount - excel.ActiveSheet.FrozenTrailingColumnCount) - 1;
                                viewportIndex--;
                            }
                        }
                        int viewportLeftColumn = excel.GetViewportLeftColumn(viewportIndex);
                        if (start < viewportLeftColumn)
                        {
                            viewportLeftColumn = start;
                        }
                        double viewportWidth = excel.GetViewportWidth(viewportIndex);
                        double num7          = NavigatorHelper.GetColumnWidth(excel.ActiveSheet, viewportLeftColumn, rightColumn);
                        if (num7 > viewportWidth)
                        {
                            viewportLeftColumn = NavigatorHelper.GetNewLeftColumn(excel.ActiveSheet, viewportLeftColumn, num7 - viewportWidth);
                        }
                        excel.SetViewportLeftColumn(viewportIndex, viewportLeftColumn);
                    }
                }
                else if (_sheet.ColumnRangeGroup.Direction == RangeGroupDirection.Backward)
                {
                    RangeGroupInfo info3 = _sheet.ColumnRangeGroup.Find(index + 1, _columnExpandExtent.Level);
                    if (info3 != null)
                    {
                        int frozenColumnCount = index;
                        int end = info3.End;
                        int columnViewportIndex = _columnExpandExtent.ViewportIndex;
                        if (_sheet.ColumnRangeGroup.Data.GetCollapsed(index))
                        {
                            if ((columnViewportIndex < 0) || (columnViewportIndex >= viewportInfo.ColumnViewportCount))
                            {
                                return;
                            }
                            end = index;
                        }
                        else
                        {
                            if (columnViewportIndex >= viewportInfo.ColumnViewportCount)
                            {
                                return;
                            }
                            if (columnViewportIndex == (viewportInfo.ColumnViewportCount - 1))
                            {
                                if (end >= (excel.ActiveSheet.ColumnCount - excel.ActiveSheet.FrozenTrailingColumnCount))
                                {
                                    end = (excel.ActiveSheet.ColumnCount - excel.ActiveSheet.FrozenTrailingColumnCount) - 1;
                                }
                            }
                            else if (columnViewportIndex < 0)
                            {
                                if (end < excel.ActiveSheet.FrozenColumnCount)
                                {
                                    return;
                                }
                                frozenColumnCount = excel.ActiveSheet.FrozenColumnCount;
                                end = Math.Min(end, (excel.ActiveSheet.ColumnCount - excel.ActiveSheet.FrozenTrailingColumnCount) - 1);
                                columnViewportIndex++;
                            }
                        }
                        int leftColumn = excel.GetViewportLeftColumn(columnViewportIndex);
                        if (frozenColumnCount < leftColumn)
                        {
                            excel.SetViewportLeftColumn(columnViewportIndex, frozenColumnCount);
                        }
                        else
                        {
                            double num12 = excel.GetViewportWidth(columnViewportIndex);
                            double num13 = NavigatorHelper.GetColumnWidth(excel.ActiveSheet, leftColumn, end);
                            if (num13 > num12)
                            {
                                leftColumn = NavigatorHelper.GetNewLeftColumn(excel.ActiveSheet, leftColumn, num13 - num12);
                                excel.SetViewportLeftColumn(columnViewportIndex, Math.Min(frozenColumnCount, leftColumn));
                            }
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Gets the search results to be displayed on the right side of the ItemPicker.
        /// </summary>
        /// <param name="context">Describes the situation in which the ItemPicker is being
        /// displayed to the user.</param>
        /// <param name="selectedNode">The node selected on the left side of the ItemPicker.</param>
        /// <param name="searchText">The search text entered by the user.</param>
        /// <returns></returns>
        public Collection<Node> GetSearchResults(ItemPickerContext context, Node selectedNode, string searchText)
        {
            var client = selectedNode.GetClient();
            var navigator = new NavigatorHelper(client);

            var provider = selectedNode as IVersionableProvider;
            Collection<Node> results = null;
            if (provider != null)
            {
                // If an item is selected in the navigator, find items of the target type within that selected item.
                results = navigator.FindItems(provider.Metadata.CompositeId, context.TypeToSelect, selectedNode, false);
            }
            else
            {
                // No item is selected in the navigator, so search the entire repository.
                results = navigator.FindItems(context.TypeToSelect, selectedNode, false);
            }

            return results;
        }
Пример #7
0
 private void ExitApplicationExec()
 {
     NavigatorHelper.Cancel();
 }
Пример #8
0
        void ShowRowRangeGroup(Excel excel)
        {
            int index = _rowExpandExtent.Index;

            if ((index >= 0) && (index < _sheet.RowCount))
            {
                ViewportInfo viewportInfo = excel.GetViewportInfo();
                if (excel.ActiveSheet.RowRangeGroup.Direction == RangeGroupDirection.Forward)
                {
                    RangeGroupInfo info2 = _sheet.RowRangeGroup.Find(index - 1, _rowExpandExtent.Level);
                    if (info2 != null)
                    {
                        int start         = info2.Start;
                        int bottonRow     = index;
                        int viewportIndex = _rowExpandExtent.ViewportIndex;
                        if (_sheet.RowRangeGroup.Data.GetCollapsed(index))
                        {
                            if ((viewportIndex < 0) || (viewportIndex >= viewportInfo.RowViewportCount))
                            {
                                return;
                            }
                            start = index;
                        }
                        else
                        {
                            if (viewportIndex < 0)
                            {
                                return;
                            }
                            if (viewportIndex == 0)
                            {
                                if (start < excel.ActiveSheet.FrozenRowCount)
                                {
                                    start = excel.ActiveSheet.FrozenRowCount;
                                }
                            }
                            else if (viewportIndex >= viewportInfo.RowViewportCount)
                            {
                                if (start >= (excel.ActiveSheet.RowCount - excel.ActiveSheet.FrozenTrailingRowCount))
                                {
                                    return;
                                }
                                start     = Math.Max(start, excel.ActiveSheet.FrozenRowCount);
                                bottonRow = (excel.ActiveSheet.RowCount - excel.ActiveSheet.FrozenTrailingRowCount) - 1;
                                viewportIndex--;
                            }
                        }
                        int viewportTopRow = excel.GetViewportTopRow(viewportIndex);
                        if (start < viewportTopRow)
                        {
                            viewportTopRow = start;
                        }
                        double viewportHeight = excel.GetViewportHeight(viewportIndex);
                        double num7           = NavigatorHelper.GetRowHeight(excel.ActiveSheet, viewportTopRow, bottonRow);
                        if (num7 > viewportHeight)
                        {
                            viewportTopRow = NavigatorHelper.GetNewTopRow(excel.ActiveSheet, viewportTopRow, num7 - viewportHeight);
                        }
                        excel.SetViewportTopRow(viewportIndex, viewportTopRow);
                    }
                }
                else if (_sheet.RowRangeGroup.Direction == RangeGroupDirection.Backward)
                {
                    RangeGroupInfo info3 = _sheet.RowRangeGroup.Find(index + 1, _rowExpandExtent.Level);
                    if (info3 != null)
                    {
                        int frozenRowCount   = index;
                        int end              = info3.End;
                        int rowViewportIndex = _rowExpandExtent.ViewportIndex;
                        if (_sheet.RowRangeGroup.Data.GetCollapsed(index))
                        {
                            if ((rowViewportIndex < 0) || (rowViewportIndex >= viewportInfo.RowViewportCount))
                            {
                                return;
                            }
                            end = index;
                        }
                        else
                        {
                            if (rowViewportIndex >= viewportInfo.RowViewportCount)
                            {
                                return;
                            }
                            if (rowViewportIndex == (viewportInfo.RowViewportCount - 1))
                            {
                                if (end >= (excel.ActiveSheet.RowCount - excel.ActiveSheet.FrozenTrailingRowCount))
                                {
                                    end = (excel.ActiveSheet.RowCount - excel.ActiveSheet.FrozenTrailingRowCount) - 1;
                                }
                            }
                            else if (rowViewportIndex < 0)
                            {
                                if (end < excel.ActiveSheet.FrozenRowCount)
                                {
                                    return;
                                }
                                frozenRowCount = excel.ActiveSheet.FrozenRowCount;
                                end            = Math.Min(end, (excel.ActiveSheet.RowCount - excel.ActiveSheet.FrozenTrailingRowCount) - 1);
                                rowViewportIndex++;
                            }
                        }
                        int topRow = excel.GetViewportTopRow(rowViewportIndex);
                        if (frozenRowCount < topRow)
                        {
                            excel.SetViewportTopRow(rowViewportIndex, frozenRowCount);
                        }
                        else
                        {
                            double num12 = excel.GetViewportHeight(rowViewportIndex);
                            double num13 = NavigatorHelper.GetRowHeight(excel.ActiveSheet, topRow, end);
                            if (num13 > num12)
                            {
                                topRow = NavigatorHelper.GetNewTopRow(excel.ActiveSheet, topRow, num13 - num12);
                                excel.SetViewportTopRow(rowViewportIndex, Math.Min(frozenRowCount, topRow));
                            }
                        }
                    }
                }
            }
        }