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); } }
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); } }
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; } }
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); }