В настоящее время я создал класс CustomNotebookPanel, который расширяет NotebookPanel и меняет макет по умолчанию на StackedPanel.
Я хотел бы, чтобы Jupyterlab использовал этот класс вместо класса Notebook по умолчанию.
Я пытался создать расширение, используя этот класс, но оно не работает.
Класс CustomNotebookPanel:
constructor(options: DocumentWidget.IOptions<Notebook, INotebookModel>) {
super(options);
super.layout = new StackedLayout();
}
}
Расширение с использованием CustomNotebookPanel:
export
class SearchExtension implements DocumentRegistry.IWidgetExtension<CustomNotebookPanel, INotebookModel> {
createNew(panel: CustomNotebookPanel, context: DocumentRegistry.IContext<INotebookModel>) : IDisposable {
let commands = new CommandRegistry();
let palette = new CommandPalette({ commands: commands });
let stackedLayout = panel.layout as StackedLayout;
stackedLayout.addWidget(palette);
SetupCommands(commands, palette, panel);
return new DisposableDelegate(() => {
palette.dispose();
});
}
}
function activate(app: JupyterLab) {
app.docRegistry.addWidgetExtension('Notebook', new SearchExtension());
};
export default extension;
После успешной установки этого расширения и открытия Блокнота в JupyterLab я не вижу NotebookPanel вместе с CommandPalette.