public RInteractiveWorkflow(IRSessionProvider sessionProvider , IRHistoryProvider historyProvider , IRPackageManagerProvider packagesProvider , IRPlotManagerProvider plotsProvider , IActiveWpfTextViewTracker activeTextViewTracker , IDebuggerModeTracker debuggerModeTracker , ICoreShell coreShell , IRSettings settings , Action onDispose) { _activeTextViewTracker = activeTextViewTracker; _debuggerModeTracker = debuggerModeTracker; _settings = settings; _onDispose = onDispose; Shell = coreShell; RSession = sessionProvider.GetOrCreate(GuidList.InteractiveWindowRSessionGuid); History = historyProvider.CreateRHistory(this); Packages = packagesProvider.CreateRPackageManager(sessionProvider, settings, this); Plots = plotsProvider.CreatePlotManager(sessionProvider, settings, this); _operations = new RInteractiveWorkflowOperations(this, _debuggerModeTracker, Shell); _activeTextViewTracker.LastActiveTextViewChanged += LastActiveTextViewChanged; RSession.Disconnected += RSessionDisconnected; }
public RInteractiveWorkflow(IConnectionManagerProvider connectionsProvider , IRHistoryProvider historyProvider , IRPackageManagerProvider packagesProvider , IRPlotManagerProvider plotsProvider , IActiveWpfTextViewTracker activeTextViewTracker , IDebuggerModeTracker debuggerModeTracker , ICoreShell coreShell , IRSettings settings) { _activeTextViewTracker = activeTextViewTracker; _debuggerModeTracker = debuggerModeTracker; _settings = settings; Shell = coreShell; RSessions = new RSessionProvider(coreShell.Services, new InteractiveWindowConsole(this)); RSession = RSessions.GetOrCreate(SessionGuids.InteractiveWindowRSessionGuid); RSession.RestartOnBrokerSwitch = true; Connections = connectionsProvider.CreateConnectionManager(this); History = historyProvider.CreateRHistory(this); Packages = packagesProvider.CreateRPackageManager(settings, this); Plots = plotsProvider.CreatePlotManager(settings, this, new FileSystem()); _operations = new RInteractiveWorkflowOperations(this, _debuggerModeTracker, Shell); _activeTextViewTracker.LastActiveTextViewChanged += LastActiveTextViewChanged; RSession.Disconnected += RSessionDisconnected; _debuggerModeTracker.EnterBreakMode += DebuggerEnteredBreakMode; _debuggerModeTracker.LeaveBreakMode += DebuggerLeftBreakMode; _settings.PropertyChanged += OnSettingsChanged; _disposableBag = DisposableBag.Create<RInteractiveWorkflow>() .Add(() => _settings.PropertyChanged -= OnSettingsChanged) .Add(() => _debuggerModeTracker.EnterBreakMode -= DebuggerEnteredBreakMode) .Add(() => _debuggerModeTracker.LeaveBreakMode -= DebuggerLeftBreakMode) .Add(() => _activeTextViewTracker.LastActiveTextViewChanged -= LastActiveTextViewChanged) .Add(() => RSession.Disconnected -= RSessionDisconnected) .Add(RSessions) .Add(Operations) .Add(Connections); }
public RInteractiveWorkflow(IRSessionProvider sessionProvider , IRHistoryProvider historyProvider , IActiveWpfTextViewTracker activeTextViewTracker , IDebuggerModeTracker debuggerModeTracker , IRHostClientApp hostClientApp , ICoreShell coreShell , IRSettings settings , Action onDispose) { _activeTextViewTracker = activeTextViewTracker; _debuggerModeTracker = debuggerModeTracker; _settings = settings; _coreShell = coreShell; _onDispose = onDispose; RSession = sessionProvider.GetOrCreate(GuidList.InteractiveWindowRSessionGuid, hostClientApp); History = historyProvider.CreateRHistory(this); _operations = new RInteractiveWorkflowOperations(); _activeTextViewTracker.LastActiveTextViewChanged += LastActiveTextViewChanged; RSession.Disconnected += RSessionDisconnected; }