Skip to content

Commit

Permalink
NotebookActions.run make sessionContext optional
Browse files Browse the repository at this point in the history
  • Loading branch information
fcollonval committed Mar 14, 2023
1 parent 966899e commit 18d8381
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 179 deletions.
2 changes: 1 addition & 1 deletion docs/source/extension/extension_migration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,9 @@ bumped their major version (following semver convention). We want to point out p
* ``IMainMenu.addMenu`` signature changed from ``addMenu(menu: Menu, options?: IMainMenu.IAddOptions): void``
to ``addMenu(menu: Menu, update?: boolean, options?: IMainMenu.IAddOptions): void``
- ``@jupyterlab/notebook`` from 3.x to 4.x
* ``NotebookWidgetFactory.IOptions`` has no ``sessionDialogs`` option any more.
* The ``NotebookPanel._onSave`` method is now ``private``.
* ``NotebookActions.collapseAll`` method renamed to ``NotebookActions.collapseAllHeadings``.
* ``NotebookActions.run`` and other run commands now require ``ISessionContext``.
* Command ``Collapsible_Headings:Toggle_Collapse`` renamed to ``notebook:toggle-heading-collapse``.
* Command ``Collapsible_Headings:Collapse_All`` renamed to ``notebook:collapse-all-headings``.
* Command ``Collapsible_Headings:Expand_All`` renamed to ``notebook:expand-all-headings``.
Expand Down
14 changes: 8 additions & 6 deletions packages/apputils/src/toolbar/widget.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import {
} from '@jupyterlab/ui-components';
import { Widget } from '@lumino/widgets';
import * as React from 'react';
import { ISessionContext } from '../sessioncontext';
import { ISessionContext, SessionContextDialogs } from '../sessioncontext';
import { translateKernelStatuses } from '../kernelstatuses';
/**
* The class name added to toolbar kernel name text.
Expand Down Expand Up @@ -65,15 +65,17 @@ export namespace Toolbar {
*/
export function createRestartButton(
sessionContext: ISessionContext,
dialogs: ISessionContext.IDialogs,
dialogs?: ISessionContext.IDialogs,
translator?: ITranslator
): Widget {
translator = translator || nullTranslator;
translator = translator ?? nullTranslator;
const trans = translator.load('jupyterlab');
return new ToolbarButton({
icon: refreshIcon,
onClick: () => {
void dialogs.restart(sessionContext);
void (dialogs ?? new SessionContextDialogs({ translator })).restart(
sessionContext
);
},
tooltip: trans.__('Restart the kernel')
});
Expand All @@ -88,13 +90,13 @@ export namespace Toolbar {
*/
export function createKernelNameItem(
sessionContext: ISessionContext,
dialogs: ISessionContext.IDialogs,
dialogs?: ISessionContext.IDialogs,
translator?: ITranslator
): Widget {
const el = ReactWidget.create(
<Private.KernelNameComponent
sessionContext={sessionContext}
dialogs={dialogs}
dialogs={dialogs ?? new SessionContextDialogs({ translator })}
translator={translator}
/>
);
Expand Down
12 changes: 6 additions & 6 deletions packages/notebook/src/actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ export namespace NotebookActions {
*/
export function run(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down Expand Up @@ -539,7 +539,7 @@ export namespace NotebookActions {
*/
export async function runAndAdvance(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down Expand Up @@ -596,7 +596,7 @@ export namespace NotebookActions {
*/
export async function runAndInsert(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down Expand Up @@ -644,7 +644,7 @@ export namespace NotebookActions {
*/
export function runAll(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down Expand Up @@ -708,7 +708,7 @@ export namespace NotebookActions {
*/
export function runAllAbove(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down Expand Up @@ -754,7 +754,7 @@ export namespace NotebookActions {
*/
export function runAllBelow(
notebook: Notebook,
sessionContext: ISessionContext,
sessionContext?: ISessionContext,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): Promise<boolean> {
Expand Down
12 changes: 7 additions & 5 deletions packages/notebook/src/default-toolbar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {
Dialog,
ISessionContext,
ISessionContextDialogs,
SessionContextDialogs,
showDialog
} from '@jupyterlab/apputils';
import { DocumentRegistry } from '@jupyterlab/docregistry';
Expand Down Expand Up @@ -189,7 +190,7 @@ export namespace ToolbarItems {
*/
export function createRunButton(
panel: NotebookPanel,
sessionDialogs: ISessionContextDialogs,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): ReactWidget {
const trans = (translator ?? nullTranslator).load('jupyterlab');
Expand All @@ -214,19 +215,20 @@ export namespace ToolbarItems {
*/
export function createRestartRunAllButton(
panel: NotebookPanel,
dialogs: ISessionContext.IDialogs,
dialogs?: ISessionContext.IDialogs,
translator?: ITranslator
): ReactWidget {
const trans = (translator ?? nullTranslator).load('jupyterlab');
return new ToolbarButton({
icon: fastForwardIcon,
onClick: () => {
void dialogs.restart(panel.sessionContext).then(restarted => {
const dialogs_ = dialogs ?? new SessionContextDialogs({ translator });
void dialogs_.restart(panel.sessionContext).then(restarted => {
if (restarted) {
void NotebookActions.runAll(
panel.content,
panel.sessionContext,
dialogs,
dialogs_,
translator
);
}
Expand Down Expand Up @@ -262,7 +264,7 @@ export namespace ToolbarItems {
*/
export function getDefaultItems(
panel: NotebookPanel,
sessionDialogs: ISessionContextDialogs,
sessionDialogs?: ISessionContextDialogs,
translator?: ITranslator
): DocumentRegistry.IToolbarItem[] {
return [
Expand Down

0 comments on commit 18d8381

Please sign in to comment.