示例#1
0
 private async Task <object> CreateNewDifferenceViewerAsync(
     IProjectionBuffer originalBuffer,
     IProjectionBuffer newBuffer,
     string description,
     FrameworkElement additionalContent)
 {
     IDifferenceBuffer diffBuffer = this.differenceBufferFactoryService.CreateDifferenceBuffer(
         originalBuffer,
         newBuffer,
         options: default,
示例#2
0
        protected override async Task <IWpfDifferenceViewer> CreateDifferenceViewAsync(
            IDifferenceBuffer diffBuffer,
            ITextViewRoleSet previewRoleSet,
            DifferenceViewMode mode,
            double zoomLevel,
            CancellationToken cancellationToken
            )
        {
            var diffViewer = _differenceViewerService.CreateDifferenceView(
                diffBuffer,
                previewRoleSet
                );

            const string DiffOverviewMarginName = "deltadifferenceViewerOverview";

            diffViewer.ViewMode = mode;

            if (mode == DifferenceViewMode.RightViewOnly)
            {
                diffViewer.RightView.ZoomLevel *= zoomLevel;
                diffViewer.RightHost.GetTextViewMargin(
                    DiffOverviewMarginName
                    ).VisualElement.Visibility = Visibility.Collapsed;
            }
            else if (mode == DifferenceViewMode.LeftViewOnly)
            {
                diffViewer.LeftView.ZoomLevel *= zoomLevel;
                diffViewer.LeftHost.GetTextViewMargin(
                    DiffOverviewMarginName
                    ).VisualElement.Visibility = Visibility.Collapsed;
            }
            else
            {
                Contract.ThrowIfFalse(mode == DifferenceViewMode.Inline);
                diffViewer.InlineView.ZoomLevel *= zoomLevel;
                diffViewer.InlineHost.GetTextViewMargin(
                    DiffOverviewMarginName
                    ).VisualElement.Visibility = Visibility.Collapsed;
            }

            // Disable focus / tab stop for the diff viewer.
            diffViewer.RightView.VisualElement.Focusable  = false;
            diffViewer.LeftView.VisualElement.Focusable   = false;
            diffViewer.InlineView.VisualElement.Focusable = false;

#pragma warning disable CA2007 // Consider calling ConfigureAwait on the awaited task (containing method uses JTF)
            await diffViewer.SizeToFitAsync(ThreadingContext, cancellationToken : cancellationToken);

#pragma warning restore CA2007 // Consider calling ConfigureAwait on the awaited task

            return(diffViewer);
        }
示例#3
0
        public async Task <object> CreateDiffViewElementAsync(IDifferenceBuffer diffBuffer)
        {
            var diffView = _diffFactory.CreateDifferenceView(diffBuffer, _previewRoleSet);

            diffView.ViewMode              = DifferenceViewMode.Inline;
            diffView.InlineView.ZoomLevel *= 1.0;
            diffView.InlineView.VisualElement.Focusable = false;
            diffView.InlineHost.GetTextViewMargin("deltadifferenceViewerOverview").VisualElement.Visibility = System.Windows.Visibility.Collapsed;

            await diffView.SizeToFitAsync().ConfigureAwait(true);

            return(diffView.VisualElement);
        }
示例#4
0
        protected override async Task <ICocoaDifferenceViewer> CreateDifferenceViewAsync(
            IDifferenceBuffer diffBuffer,
            ITextViewRoleSet previewRoleSet,
            DifferenceViewMode mode,
            double zoomLevel,
            CancellationToken cancellationToken
            )
        {
            var diffViewer = _differenceViewerService.CreateDifferenceView(
                diffBuffer,
                previewRoleSet
                );

            diffViewer.ViewMode = mode;

            // We use ConfigureAwait(true) to stay on the UI thread.
            await diffViewer
            .SizeToFitAsync(ThreadingContext, cancellationToken : cancellationToken)
            .ConfigureAwait(true);

            return(diffViewer);
        }
 protected abstract Task <TDifferenceViewer> CreateDifferenceViewAsync(IDifferenceBuffer diffBuffer, ITextViewRoleSet previewRoleSet, DifferenceViewMode mode, double zoomLevel, CancellationToken cancellationToken);
示例#6
0
        protected override async Task <ICocoaDifferenceViewer> CreateDifferenceViewAsync(IDifferenceBuffer diffBuffer, ITextViewRoleSet previewRoleSet, DifferenceViewMode mode, double zoomLevel, CancellationToken cancellationToken)
        {
            var diffViewer = _differenceViewerService.CreateDifferenceView(diffBuffer, previewRoleSet);

            diffViewer.ViewMode = mode;
            const string DiffOverviewMarginName = "deltadifferenceViewerOverview";

            if (mode == DifferenceViewMode.RightViewOnly)
            {
                diffViewer.RightHost.GetTextViewMargin(DiffOverviewMarginName).VisualElement.Hidden = true;
            }
            else if (mode == DifferenceViewMode.LeftViewOnly)
            {
                diffViewer.LeftHost.GetTextViewMargin(DiffOverviewMarginName).VisualElement.Hidden = true;
            }
            else
            {
                Contract.ThrowIfFalse(mode == DifferenceViewMode.Inline);
                diffViewer.InlineHost.GetTextViewMargin(DiffOverviewMarginName).VisualElement.Hidden = true;
            }

            // We use ConfigureAwait(true) to stay on the UI thread.
            await diffViewer.SizeToFitAsync(ThreadingContext, cancellationToken : cancellationToken).ConfigureAwait(true);

            return(diffViewer);
        }
示例#7
0
 public Task <object> CreateDiffViewElementAsync(IDifferenceBuffer diffBuffer) => throw new System.NotImplementedException();