Beispiel #1
0
        public async Task ViewerExportTest()
        {
            using (var hostScript = new RHostScript(_sessionProvider)) {
                var session = hostScript.Session;

                var funcViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "lm");

                funcViewer.Should().NotBeNull().And.BeOfType <CodeViewer>();

                var gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "airmiles");

                gridViewer.Should().NotBeNull().And.BeOfType <Viewer1D>();

                gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "mtcars");

                gridViewer.Should().NotBeNull().And.BeOfType <TableViewer>();

                gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "AirPassengers");

                gridViewer.Should().NotBeNull().And.BeOfType <Viewer1D>();

                gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "list(c(1:10))");

                gridViewer.Should().NotBeNull().And.BeOfType <ListViewer>();

                gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "c(1:10)");

                gridViewer.Should().NotBeNull().And.BeOfType <VectorViewer>();

                gridViewer.Capabilities.Should().HaveFlag(ViewerCapabilities.List | ViewerCapabilities.Table);
            }
        }
Beispiel #2
0
        public async Task ViewerExportTest()
        {
            await HostScript.InitializeAsync();

            var session = HostScript.Session;

            var funcViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "lm");

            funcViewer.Should().BeOfType <CodeViewer>();

            var gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "airmiles");

            gridViewer.Should().BeOfType <GridViewer>();

            gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "mtcars");

            gridViewer.Should().BeOfType <GridViewer>();

            gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "AirPassengers");

            gridViewer.Should().BeOfType <GridViewer>();

            gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "as.list(c(1:10))");

            gridViewer.Should().BeOfType <GridViewer>();

            gridViewer = await _aggregator.GetViewer(session, REnvironments.GlobalEnv, "c(1:10)");

            gridViewer.Should().BeOfType <GridViewer>();

            gridViewer.Capabilities.Should().HaveFlag(ViewerCapabilities.List | ViewerCapabilities.Table);
        }
        public async Task ViewObjectDetails(IRSession session, string environmentExpression, string expression, string title, CancellationToken cancellationToken)
        {
            var viewer = await _aggregator.GetViewer(session, environmentExpression, expression, cancellationToken);

            if (viewer != null)
            {
                await viewer.ViewAsync(expression, title, cancellationToken);
            }
        }
Beispiel #4
0
        private void SetViewButtonStatus(IRValueInfo result)
        {
            _detailsViewer = _aggregator.GetViewer(result);
            _title         = result.Name;

            CanShowDetail = _detailsViewer != null;
            if (CanShowDetail)
            {
                ShowDetailCommand        = new DelegateCommand(o => _detailsViewer.ViewAsync(result.Expression, _title).DoNotWait(), o => CanShowDetail);
                ShowDetailCommandTooltip = Resources.ShowDetailCommandTooltip;
            }

            CanShowOpenCsv = result.CanCoerceToDataFrame && (result.Length > 1 || result.TypeName == "S4");
            if (CanShowOpenCsv)
            {
                OpenInCsvAppCommand        = new DelegateCommand(OpenInCsvApp, o => CanShowOpenCsv);
                OpenInCsvAppCommandTooltip = Resources.OpenCsvAppCommandTooltip;
            }
        }
Beispiel #5
0
        private void SetViewButtonStatus(IRValueInfo result)
        {
            _detailsViewer = _aggregator.GetViewer(result);
            _title         = result.Name;

            CanShowDetail = _detailsViewer != null;
            if (CanShowDetail)
            {
                ShowDetailCommand        = new DelegateCommand(o => _detailsViewer.ViewAsync(result.Expression, _title).DoNotWait(), o => CanShowDetail);
                ShowDetailCommandTooltip = Resources.ShowDetailCommandTooltip;
            }

            var tableCaps = (ViewerCapabilities.Table | ViewerCapabilities.List);

            CanShowOpenCsv = CanShowDetail && (_detailsViewer.Capabilities & tableCaps) != 0 && result.Length > 0;
            if (CanShowOpenCsv)
            {
                OpenInCsvAppCommand        = new DelegateCommand(OpenInCsvApp, o => CanShowOpenCsv);
                OpenInCsvAppCommandTooltip = Resources.OpenCsvAppCommandTooltip;
            }
        }
        public static async Task <IObjectDetailsViewer> GetViewer(this IObjectDetailsViewerAggregator aggregator, IRSession session, string environmentExpression, string expression, CancellationToken cancellationToken = default(CancellationToken))
        {
            var preliminary = await session.TryEvaluateAndDescribeAsync(expression, TypeNameProperty | ClassesProperty | DimProperty | LengthProperty | FlagsProperty, null, cancellationToken) as IRValueInfo;

            return(preliminary != null?aggregator.GetViewer(preliminary) : null);
        }