diff --git a/packages/completer-extension/src/index.ts b/packages/completer-extension/src/index.ts index 42597a392135..daf5645ccfe3 100644 --- a/packages/completer-extension/src/index.ts +++ b/packages/completer-extension/src/index.ts @@ -135,12 +135,12 @@ const consoles: JupyterFrontEndPlugin = { consoles: IConsoleTracker ): void => { // Create a handler for each console that is created. - consoles.widgetAdded.connect((sender, panel) => { - const anchor = panel.console; + consoles.widgetAdded.connect((sender, widget) => { + const anchor = widget.content.console; const cell = anchor.promptCell; const editor = cell && cell.editor; const session = anchor.session; - const parent = panel; + const parent = widget; const connector = new CompletionConnector({ session, editor }); const handler = manager.register({ connector, editor, parent }); diff --git a/packages/console-extension/src/foreign.ts b/packages/console-extension/src/foreign.ts index c3ec306d66dd..546fce70f498 100644 --- a/packages/console-extension/src/foreign.ts +++ b/packages/console-extension/src/foreign.ts @@ -38,8 +38,8 @@ function activateForeign( palette: ICommandPalette | null ) { const { shell } = app; - tracker.widgetAdded.connect((sender, panel) => { - const console = panel.console; + tracker.widgetAdded.connect((sender, widget) => { + const console = widget.content.console; const handler = new ForeignHandler({ session: console.session, @@ -62,7 +62,7 @@ function activateForeign( if (activate && widget) { shell.activateById(widget.id); } - return widget; + return widget.content; } commands.addCommand(toggleShowAllActivity, { @@ -77,7 +77,8 @@ function activateForeign( }, isToggled: () => tracker.currentWidget !== null && - Private.foreignHandlerProperty.get(tracker.currentWidget.console).enabled, + Private.foreignHandlerProperty.get(tracker.currentWidget.content.console) + .enabled, isEnabled: () => tracker.currentWidget !== null && tracker.currentWidget === shell.currentWidget diff --git a/packages/console-extension/src/index.ts b/packages/console-extension/src/index.ts index 424325156d66..f678a26098a8 100644 --- a/packages/console-extension/src/index.ts +++ b/packages/console-extension/src/index.ts @@ -12,6 +12,7 @@ import { Dialog, IClientSession, ICommandPalette, + MainAreaWidget, showDialog, WidgetTracker } from '@jupyterlab/apputils'; @@ -142,20 +143,22 @@ async function activateConsole( const category = 'Console'; // Create a widget tracker for all console panels. - const tracker = new WidgetTracker({ namespace: 'console' }); + const tracker = new WidgetTracker>({ + namespace: 'console' + }); // Handle state restoration. void restorer.restore(tracker, { command: CommandIDs.create, - args: panel => ({ - path: panel.console.session.path, - name: panel.console.session.name, + args: widget => ({ + path: widget.content.console.session.path, + name: widget.content.console.session.name, kernelPreference: { - name: panel.console.session.kernelPreference.name, - language: panel.console.session.kernelPreference.language + name: widget.content.console.session.kernelPreference.name, + language: widget.content.console.session.kernelPreference.language } }), - name: panel => panel.console.session.path, + name: widget => widget.content.console.session.path, when: manager.ready }); @@ -236,6 +239,7 @@ async function activateConsole( setBusy: status && (() => status.setBusy()), ...(options as Partial) }); + const widget = new MainAreaWidget({ content: panel }); const interactionMode: string = ( await settingRegistry.get( @@ -247,8 +251,8 @@ async function activateConsole( // Add the console panel to the tracker. We want the panel to show up before // any kernel selection dialog, so we do not await panel.session.ready; - await tracker.add(panel); - panel.session.propertyChanged.connect(() => tracker.save(panel)); + await tracker.add(widget); + panel.session.propertyChanged.connect(() => tracker.save(widget)); shell.add(panel, 'main', { ref: options.ref, @@ -263,8 +267,8 @@ async function activateConsole( async function updateSettings() { interactionMode = (await settingRegistry.get(pluginId, 'interactionMode')) .composite as string; - tracker.forEach(panel => { - panel.console.node.dataset.jpInteractionMode = interactionMode; + tracker.forEach(widget => { + widget.content.console.node.dataset.jpInteractionMode = interactionMode; }); } settingRegistry.pluginChanged.connect((sender, plugin) => { @@ -280,7 +284,7 @@ async function activateConsole( function isEnabled(): boolean { return ( tracker.currentWidget !== null && - tracker.currentWidget === shell.currentWidget + tracker.currentWidget.content === shell.currentWidget ); } @@ -299,7 +303,7 @@ async function activateConsole( execute: (args: IOpenOptions) => { let path = args['path']; let widget = tracker.find(value => { - return value.console.session.path === path; + return value.content.console.session.path === path; }); if (widget) { if (args['activate'] !== false) { @@ -350,7 +354,7 @@ async function activateConsole( if (activate && widget) { shell.activateById(widget.id); } - return widget; + return widget.content; } commands.addCommand(CommandIDs.clear, { @@ -457,11 +461,11 @@ async function activateConsole( execute: args => { let path = args['path']; tracker.find(widget => { - if (widget.console.session.path === path) { + if (widget.content.console.session.path === path) { if (args['activate'] !== false) { shell.activateById(widget.id); } - void widget.console.inject( + void widget.content.console.inject( args['code'] as string, args['metadata'] as JSONObject ); @@ -508,14 +512,14 @@ async function activateConsole( tracker, action: 'Shutdown', name: 'Console', - closeAndCleanup: (current: ConsolePanel) => { + closeAndCleanup: (current: MainAreaWidget) => { return showDialog({ title: 'Shut down the console?', body: `Are you sure you want to close "${current.title.label}"?`, buttons: [Dialog.cancelButton(), Dialog.warnButton()] }).then(result => { if (result.button.accept) { - return current.console.session.shutdown().then(() => { + return current.content.console.session.shutdown().then(() => { current.dispose(); }); } else { @@ -523,48 +527,48 @@ async function activateConsole( } }); } - } as IFileMenu.ICloseAndCleaner); + } as IFileMenu.ICloseAndCleaner>); // Add a kernel user to the Kernel menu mainMenu.kernelMenu.kernelUsers.add({ tracker, interruptKernel: current => { - let kernel = current.console.session.kernel; + let kernel = current.content.console.session.kernel; if (kernel) { return kernel.interrupt(); } return Promise.resolve(void 0); }, noun: 'Console', - restartKernel: current => current.console.session.restart(), + restartKernel: current => current.content.console.session.restart(), restartKernelAndClear: current => { - return current.console.session.restart().then(restarted => { + return current.content.console.session.restart().then(restarted => { if (restarted) { - current.console.clear(); + current.content.console.clear(); } return restarted; }); }, - changeKernel: current => current.console.session.selectKernel(), - shutdownKernel: current => current.console.session.shutdown() - } as IKernelMenu.IKernelUser); + changeKernel: current => current.content.console.session.selectKernel(), + shutdownKernel: current => current.content.console.session.shutdown() + } as IKernelMenu.IKernelUser>); // Add a code runner to the Run menu. mainMenu.runMenu.codeRunners.add({ tracker, noun: 'Cell', pluralNoun: 'Cells', - run: current => current.console.execute(true) - } as IRunMenu.ICodeRunner); + run: current => current.content.console.execute(true) + } as IRunMenu.ICodeRunner>); // Add a clearer to the edit menu mainMenu.editMenu.clearers.add({ tracker, noun: 'Console Cells', - clearCurrent: (current: ConsolePanel) => { - return current.console.clear(); + clearCurrent: (current: MainAreaWidget) => { + return current.content.console.clear(); } - } as IEditMenu.IClearer); + } as IEditMenu.IClearer>); // For backwards compatibility and clarity, we explicitly label the run // keystroke with the actual effected change, rather than the generic @@ -617,8 +621,8 @@ async function activateConsole( // Add kernel information to the application help menu. mainMenu.helpMenu.kernelUsers.add({ tracker, - getKernel: current => current.session.kernel - } as IHelpMenu.IKernelUser); + getKernel: current => current.content.session.kernel + } as IHelpMenu.IKernelUser>); app.contextMenu.addItem({ command: CommandIDs.clear, diff --git a/packages/console/src/tokens.ts b/packages/console/src/tokens.ts index c5089716e6ca..d13e511577cd 100644 --- a/packages/console/src/tokens.ts +++ b/packages/console/src/tokens.ts @@ -1,7 +1,7 @@ // Copyright (c) Jupyter Development Team. // Distributed under the terms of the Modified BSD License. -import { IWidgetTracker } from '@jupyterlab/apputils'; +import { IWidgetTracker, MainAreaWidget } from '@jupyterlab/apputils'; import { Token } from '@lumino/coreutils'; @@ -19,4 +19,5 @@ export const IConsoleTracker = new Token( /** * A class that tracks console widgets. */ -export interface IConsoleTracker extends IWidgetTracker {} +export interface IConsoleTracker + extends IWidgetTracker> {} diff --git a/packages/fileeditor-extension/src/commands.ts b/packages/fileeditor-extension/src/commands.ts index d3f8e2d7c1d8..80524f822e73 100644 --- a/packages/fileeditor-extension/src/commands.ts +++ b/packages/fileeditor-extension/src/commands.ts @@ -865,15 +865,17 @@ export namespace Commands { tracker, noun: 'Code', isEnabled: current => - !!consoleTracker.find(c => c.session.path === current.context.path), + !!consoleTracker.find( + widget => widget.content.session.path === current.context.path + ), run: () => commands.execute(CommandIDs.runCode), runAll: () => commands.execute(CommandIDs.runAllCode), restartAndRunAll: current => { - const console = consoleTracker.find( - console => console.session.path === current.context.path + const widget = consoleTracker.find( + widget => widget.content.session.path === current.context.path ); - if (console) { - return console.session.restart().then(restarted => { + if (widget) { + return widget.content.session.restart().then(restarted => { if (restarted) { void commands.execute(CommandIDs.runAllCode); } diff --git a/packages/inspector-extension/src/index.ts b/packages/inspector-extension/src/index.ts index 678dbd3bb61c..80e2bff00ccf 100644 --- a/packages/inspector-extension/src/index.ts +++ b/packages/inspector-extension/src/index.ts @@ -135,8 +135,9 @@ const consoles: JupyterFrontEndPlugin = { // Create a handler for each console that is created. consoles.widgetAdded.connect((sender, parent) => { - const session = parent.console.session; - const rendermime = parent.console.rendermime; + const content = parent.content; + const session = content.console.session; + const rendermime = content.console.rendermime; const connector = new KernelConnector({ session }); const handler = new InspectionHandler({ connector, rendermime }); @@ -144,11 +145,11 @@ const consoles: JupyterFrontEndPlugin = { handlers[parent.id] = handler; // Set the initial editor. - let cell = parent.console.promptCell; + let cell = content.console.promptCell; handler.editor = cell && cell.editor; // Listen for prompt creation. - parent.console.promptCellCreated.connect((sender, cell) => { + content.console.promptCellCreated.connect((sender, cell) => { handler.editor = cell && cell.editor; }); diff --git a/packages/tooltip-extension/src/index.ts b/packages/tooltip-extension/src/index.ts index 8f52052b5120..71fe91e58629 100644 --- a/packages/tooltip-extension/src/index.ts +++ b/packages/tooltip-extension/src/index.ts @@ -105,7 +105,7 @@ const consoles: JupyterFrontEndPlugin = { return; } - const anchor = parent.console; + const anchor = parent.content.console; const editor = anchor.promptCell.editor; const kernel = anchor.session.kernel; const rendermime = anchor.rendermime;