Example #1
0
        private void Search(string ns, bool alwaysPaging = false)
        {
            var isPartial       = false;
            var matchedSettings = allSettings.ForParse();


            var settingCount = 0;

            if (ns.EndsWith("."))
            {
                var settings = matchedSettings.Where(o => o.Namespace.StartsWith(ns)).ToList();

                if (!alwaysPaging && (settings.Count() / 3 > appOptions.TruncateResultsOver))
                {
                    isPartial       = true;
                    matchedSettings = settings.Take(appOptions.TruncateResultsOver);
                    settingCount    = settings.Count;
                }
                else
                {
                    matchedSettings = settings.ToList();
                }
            }
            else
            {
                matchedSettings = matchedSettings.Where(o => o.Namespace == ns).ToList();
            }

            var namespaces = matchedSettings.ToNamespaces().ToList();
            var languages  = allSettings.ToLanguages().ToList();


            var languageGroups = new List <LanguageGroup>();

            foreach (string n in namespaces)
            {
                var languageGroup = new LanguageGroup(n, languages);
                languageGroup.LoadSettings(matchedSettings.Where(o => o.Namespace == n).ToList());
                languageGroups.Add(languageGroup);
            }

            pagingController.SwapData(languageGroups, isPartial);
            languageGroupContainer.ItemsSource = pagingController.PageData;
            pagingMessage.Text             = pagingController.PageMessage;
            partialPagingButton.Visibility = isPartial ? Visibility.Visible : Visibility.Hidden;
            pagingButtons.Visibility       = isPartial ? Visibility.Visible : Visibility.Hidden;
            if (isPartial)
            {
                partialPagingButton.Content = "Load " + settingCount / 3;
            }

            ContentScroller.ScrollToTop();
        }
        private void ScrollToSelection(out Rect rect)
        {
            Document.Selection.GetRect(PointOptions.Transform, out rect, out _);

            double
                verticalOffset            = ContentScroller !.VerticalOffset,
                horizontalOffset          = ContentScroller.HorizontalOffset,
                viewportHeight            = ContentScroller.ViewportHeight - VerticalScrollBarMargin.Top,
                viewportWidth             = ContentScroller.ViewportWidth,
                transformedVerticalOffset = rect.Top - verticalOffset;

            const double NegativeLeftOffsetBeforeSelection = 12;
            const double HorizontalScrollingThreshold      = 20;
            const double RightOffsetAfterSelection         = 32;

            // Calculate the target horizontal offset
            double?horizontal;

            if (rect.Left < horizontalOffset)
            {
                horizontal = rect.Left - NegativeLeftOffsetBeforeSelection;
            }
            else if (rect.Left > viewportWidth + horizontalOffset - HorizontalScrollingThreshold)
            {
                horizontal = rect.Left - viewportWidth + RightOffsetAfterSelection;
            }
            else
            {
                horizontal = null;
            }

            const double VerticalScrollingThreshold = 32;
            const double BottomOffsetBelowSelection = 32;

            // Calculate the target vertical offset
            double?vertical;

            if (transformedVerticalOffset < 0)
            {
                vertical = verticalOffset + transformedVerticalOffset;
            }
            else if (transformedVerticalOffset > viewportHeight - VerticalScrollingThreshold)
            {
                vertical = verticalOffset + (transformedVerticalOffset - viewportHeight) + BottomOffsetBelowSelection;
            }
            else
            {
                vertical = null;
            }

            // Scroll to selection
            ContentScroller.ChangeView(horizontal, vertical, null, false);
        }
 private void LogPage_Loaded(object sender, RoutedEventArgs e)
 {
     ContentScroller.ScrollToVerticalOffset(LogText.ActualHeight);
 }
Example #4
0
 private void PagedUpdates()
 {
     languageGroupContainer.ItemsSource = pagingController.PageData;
     pagingMessage.Text = pagingController.PageMessage;
     ContentScroller.ScrollToTop();
 }