diff --git a/python/jupyterlab_widgets/src/output.ts b/python/jupyterlab_widgets/src/output.ts index 5f92fe2200..37793bf193 100644 --- a/python/jupyterlab_widgets/src/output.ts +++ b/python/jupyterlab_widgets/src/output.ts @@ -7,7 +7,7 @@ import { JupyterLuminoPanelWidget } from '@jupyter-widgets/base'; import { Panel } from '@lumino/widgets'; -import { WidgetManager } from './manager'; +import { LabWidgetManager, WidgetManager } from './manager'; import { OutputAreaModel, OutputArea } from '@jupyterlab/outputarea'; @@ -33,11 +33,14 @@ export class OutputModel extends outputBase.OutputModel { return false; }; - this.widget_manager.context.sessionContext.kernelChanged.connect( - (sender, args) => { - this._handleKernelChanged(args); - } - ); + // if the context is available, react on kernel changes + if (this.widget_manager instanceof WidgetManager) { + this.widget_manager.context.sessionContext.kernelChanged.connect( + (sender, args) => { + this._handleKernelChanged(args); + } + ); + } this.listenTo(this, 'change:msg_id', this.reset_msg_id); this.listenTo(this, 'change:outputs', this.setOutputs); this.setOutputs(); @@ -60,7 +63,7 @@ export class OutputModel extends outputBase.OutputModel { * Reset the message id. */ reset_msg_id(): void { - const kernel = this.widget_manager.context.sessionContext?.session?.kernel; + const kernel = this.widget_manager.kernel; const msgId = this.get('msg_id'); const oldMsgId = this.previous('msg_id'); @@ -114,7 +117,7 @@ export class OutputModel extends outputBase.OutputModel { } } - widget_manager: WidgetManager; + widget_manager: LabWidgetManager; private _msgHook: (msg: KernelMessage.IIOPubMessage) => boolean; private _outputs: OutputAreaModel;