本文整理匯總了TypeScript中@jupyterlab/apputils.ILayoutRestorer.restore方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript ILayoutRestorer.restore方法的具體用法?TypeScript ILayoutRestorer.restore怎麽用?TypeScript ILayoutRestorer.restore使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@jupyterlab/apputils.ILayoutRestorer
的用法示例。
在下文中一共展示了ILayoutRestorer.restore方法的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: activate
/**
* Activate the markdown plugin.
*/
function activate(app: JupyterLab, registry: IDocumentRegistry, rendermime: IRenderMime, restorer: ILayoutRestorer) {
const factory = new MarkdownWidgetFactory({
name: FACTORY,
fileExtensions: ['.md'],
rendermime
});
const shell = app.shell;
const namespace = 'rendered-markdown';
const tracker = new InstanceTracker<MarkdownWidget>({ namespace, shell });
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: widget => ({ path: widget.context.path, factory: FACTORY }),
name: widget => widget.context.path
});
factory.widgetCreated.connect((sender, widget) => {
widget.title.icon = TEXTEDITOR_ICON_CLASS;
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
tracker.add(widget);
});
registry.addWidgetFactory(factory);
}
示例2: activate
/**
* Activate the image widget extension.
*/
function activate(app: JupyterLab, registry: IDocumentRegistry, palette: ICommandPalette, restorer: ILayoutRestorer): IImageTracker {
const namespace = 'image-widget';
const factory = new ImageWidgetFactory({
name: FACTORY,
modelName: 'base64',
fileExtensions: EXTENSIONS,
defaultFor: EXTENSIONS
});
const { shell } = app;
const tracker = new InstanceTracker<ImageWidget>({ namespace, shell });
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: widget => ({ path: widget.context.path, factory: FACTORY }),
name: widget => widget.context.path
});
registry.addWidgetFactory(factory);
factory.widgetCreated.connect((sender, widget) => {
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
tracker.add(widget);
});
let category = 'Image Widget';
[CommandIDs.zoomIn, CommandIDs.zoomOut, CommandIDs.resetZoom]
.forEach(command => { palette.addItem({ command, category }); });
return tracker;
}
示例3: activate
/**
* Activate the table widget extension.
*/
function activate(app: JupyterLab, registry: IDocumentRegistry, restorer: ILayoutRestorer): void {
const factory = new CSVViewerFactory({
name: FACTORY,
fileExtensions: ['.csv'],
defaultFor: ['.csv']
});
const tracker = new InstanceTracker<CSVViewer>({
namespace: 'csvviewer',
shell: app.shell
});
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: widget => ({ path: widget.context.path, factory: FACTORY }),
name: widget => widget.context.path
});
registry.addWidgetFactory(factory);
factory.widgetCreated.connect((sender, widget) => {
// Track the widget.
tracker.add(widget);
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
});
}
示例4: InspectorManager
activate: (app: JupyterLab, palette: ICommandPalette, restorer: ILayoutRestorer): IInspector => {
const { commands, shell } = app;
const manager = new InspectorManager();
const category = 'Inspector';
const command = CommandIDs.open;
const label = 'Open Inspector';
const tracker = new InstanceTracker<InspectorPanel>({
namespace: 'inspector',
shell
});
/**
* Create and track a new inspector.
*/
function newInspectorPanel(): InspectorPanel {
const inspector = new InspectorPanel();
inspector.id = 'jp-inspector';
inspector.title.label = 'Inspector';
inspector.title.closable = true;
inspector.disposed.connect(() => {
if (manager.inspector === inspector) {
manager.inspector = null;
}
});
// Track the inspector.
tracker.add(inspector);
// Add the default inspector child items.
Private.defaultInspectorItems.forEach(item => { inspector.add(item); });
return inspector;
}
// Handle state restoration.
restorer.restore(tracker, {
command,
args: () => null,
name: () => 'inspector'
});
// Add command to registry and palette.
commands.addCommand(command, {
label,
execute: () => {
if (!manager.inspector || manager.inspector.isDisposed) {
manager.inspector = newInspectorPanel();
shell.addToMainArea(manager.inspector);
}
if (manager.inspector.isAttached) {
tracker.activate(manager.inspector);
}
}
});
palette.addItem({ command, category });
return manager;
}
示例5: activate
/**
* Activate the landing plugin.
*/
function activate(app: JupyterLab, linker: ICommandLinker, palette: ICommandPalette, services: IServiceManager, restorer: ILayoutRestorer): void {
const { commands, shell } = app;
const category = 'Help';
const command = CommandIDs.open;
const model = new LandingModel(services.terminals.isAvailable());
const tracker = new InstanceTracker<LandingWidget>({
namespace: 'landing',
shell
});
// Handle state restoration.
restorer.restore(tracker, {
command,
args: () => null,
name: () => 'landing'
});
let widget: LandingWidget;
function newWidget(): LandingWidget {
let widget = new LandingWidget(linker);
widget.model = model;
widget.id = 'landing-jupyterlab';
widget.title.label = 'Landing';
widget.title.closable = true;
widget.addClass(LANDING_CLASS);
tracker.add(widget);
return widget;
}
commands.addCommand(command, {
label: 'Open Landing',
execute: () => {
if (!widget || widget.isDisposed) {
widget = newWidget();
shell.addToMainArea(widget);
}
tracker.activate(widget);
}
});
palette.addItem({ category, command });
// Only create a landing page if there are no other tabs open.
app.restored.then(() => {
if (shell.isEmpty('main')) {
commands.execute(command, void 0);
}
});
}
示例6: activate
/**
* Activate the editor tracker plugin.
*/
function activate(app: JupyterLab, registry: IDocumentRegistry, restorer: ILayoutRestorer, editorServices: IEditorServices, launcher: ILauncher | null): IEditorTracker {
const factory = new EditorWidgetFactory({
editorServices,
factoryOptions: {
name: FACTORY,
fileExtensions: ['*'],
defaultFor: ['*']
}
});
const shell = app.shell;
const tracker = new InstanceTracker<EditorWidget>({
namespace: 'editor',
shell
});
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: widget => ({ path: widget.context.path, factory: FACTORY }),
name: widget => widget.context.path
});
factory.widgetCreated.connect((sender, widget) => {
widget.title.icon = EDITOR_ICON_CLASS;
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
tracker.add(widget);
});
registry.addWidgetFactory(factory);
addDefaultCommands(tracker, app.commands);
// Add a launcher item if the launcher is available.
if (launcher) {
launcher.add({
name: 'Text Editor',
command: 'filebrowser:new-text-file'
});
}
return tracker;
}
示例7: activate
function activate(app: JupyterLab, palette: ICommandPalette, restorer: ILayoutRestorer): void {
const namespace = 'about-jupyterlab';
const model = new AboutModel({
version: app.info.version,
title: `Welcome to ${app.info.name}`
});
const command = CommandIDs.open;
const category = 'Help';
const { shell, commands } = app;
const tracker = new InstanceTracker<AboutWidget>({ namespace, shell });
restorer.restore(tracker, {
command,
args: () => null,
name: () => 'about'
});
let widget: AboutWidget;
function newWidget(): AboutWidget {
let widget = new AboutWidget();
widget.model = model;
widget.id = 'about';
widget.title.label = 'About';
widget.title.closable = true;
tracker.add(widget);
return widget;
}
commands.addCommand(command, {
label: 'About JupyterLab',
execute: () => {
if (!widget || widget.isDisposed) {
widget = newWidget();
shell.addToMainArea(widget);
}
tracker.activate(widget);
}
});
palette.addItem({ command, category });
}
示例8: activate
/**
* Activate the FAQ plugin.
*/
function activate(app: JupyterLab, palette: ICommandPalette, linker: ICommandLinker, restorer: ILayoutRestorer): void {
const category = 'Help';
const command = CommandIDs.open;
const model = new FaqModel();
const { commands, shell } = app;
const tracker = new InstanceTracker<FaqWidget>({ namespace: 'faq', shell });
// Handle state restoration.
restorer.restore(tracker, {
command,
args: () => null,
name: () => 'faq'
});
let widget: FaqWidget;
function newWidget(): FaqWidget {
let widget = new FaqWidget({ linker });
widget.model = model;
widget.id = 'faq';
widget.title.label = 'FAQ';
widget.title.closable = true;
tracker.add(widget);
return widget;
}
commands.addCommand(command, {
label: 'Open FAQ',
execute: () => {
if (!widget || widget.isDisposed) {
widget = newWidget();
shell.addToMainArea(widget);
}
tracker.activate(widget);
}
});
palette.addItem({ command, category });
}
示例9: activate
/**
* Activate the editor tracker plugin.
*/
function activate(app: JupyterLab, registry: IDocumentRegistry, restorer: ILayoutRestorer, editorServices: IEditorServices, state: IStateDB, launcher: ILauncher | null): IEditorTracker {
const factory = new FileEditorFactory({
editorServices,
factoryOptions: {
name: FACTORY,
fileExtensions: ['*'],
defaultFor: ['*']
}
});
const { commands, shell } = app;
const id = 'editor:settings';
const tracker = new InstanceTracker<FileEditor>({
namespace: 'editor',
shell
});
let lineNumbers = true;
let wordWrap = true;
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: widget => ({ path: widget.context.path, factory: FACTORY }),
name: widget => widget.context.path
});
// Fetch the initial state of the settings.
state.fetch(id).then(settings => {
if (!settings) {
return;
}
if (typeof settings['wordWrap'] === 'string') {
commands.execute(CommandIDs.wordWrap, settings);
}
if (typeof settings['lineNumbers'] === 'string') {
commands.execute(CommandIDs.lineNumbers, settings);
}
});
/**
* Save the editor widget settings state.
*/
function saveState(): Promise<void> {
return state.save(id, { lineNumbers, wordWrap });
}
factory.widgetCreated.connect((sender, widget) => {
widget.title.icon = EDITOR_ICON_CLASS;
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
tracker.add(widget);
widget.editor.lineNumbers = lineNumbers;
widget.editor.wordWrap = wordWrap;
});
registry.addWidgetFactory(factory);
/**
* Handle the settings of new widgets.
*/
tracker.widgetAdded.connect((sender, widget) => {
let editor = widget.editor;
editor.lineNumbers = lineNumbers;
editor.wordWrap = wordWrap;
});
/**
* Toggle editor line numbers
*/
function toggleLineNums(args: JSONObject): Promise<void> {
lineNumbers = !lineNumbers;
tracker.forEach(widget => {
widget.editor.lineNumbers = lineNumbers;
});
return saveState();
}
/**
* Toggle editor line wrap
*/
function toggleLineWrap(args: JSONObject): Promise<void> {
wordWrap = !wordWrap;
tracker.forEach(widget => {
widget.editor.wordWrap = wordWrap;
});
return saveState();
}
/**
* A test for whether the tracker has an active widget.
*/
function hasWidget(): boolean {
return tracker.currentWidget !== null;
}
commands.addCommand(CommandIDs.lineNumbers, {
execute: toggleLineNums,
isEnabled: hasWidget,
//.........這裏部分代碼省略.........
示例10: activateNotebookHandler
/**
* Activate the notebook handler extension.
*/
function activateNotebookHandler(app: JupyterLab, registry: IDocumentRegistry, services: IServiceManager, rendermime: IRenderMime, mainMenu: IMainMenu, palette: ICommandPalette, contentFactory: NotebookPanel.IContentFactory, editorServices: IEditorServices, restorer: ILayoutRestorer, launcher: ILauncher | null): INotebookTracker {
const factory = new NotebookWidgetFactory({
name: FACTORY,
fileExtensions: ['.ipynb'],
modelName: 'notebook',
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true,
rendermime,
contentFactory,
mimeTypeService: editorServices.mimeTypeService
});
const shell = app.shell;
const tracker = new NotebookTracker({ namespace: 'notebook', shell });
// Handle state restoration.
restorer.restore(tracker, {
command: 'file-operations:open',
args: panel => ({ path: panel.context.path, factory: FACTORY }),
name: panel => panel.context.path,
when: services.ready
});
registry.addModelFactory(new NotebookModelFactory({}));
registry.addWidgetFactory(factory);
registry.addFileType({
name: 'Notebook',
extension: '.ipynb',
contentType: 'notebook',
fileFormat: 'json'
});
registry.addCreator({
name: 'Notebook',
fileType: 'Notebook',
widgetName: 'Notebook'
});
addCommands(app, services, tracker);
populatePalette(palette);
let id = 0; // The ID counter for notebook panels.
factory.widgetCreated.connect((sender, widget) => {
// If the notebook panel does not have an ID, assign it one.
widget.id = widget.id || `notebook-${++id}`;
widget.title.icon = NOTEBOOK_ICON_CLASS;
// Notify the instance tracker if restore data needs to update.
widget.context.pathChanged.connect(() => { tracker.save(widget); });
// Add the notebook panel to the tracker.
tracker.add(widget);
});
// Add main menu notebook menu.
mainMenu.addMenu(createMenu(app), { rank: 20 });
// Add a launcher item if the launcher is available.
if (launcher) {
launcher.add({
args: { creatorName: 'Notebook' },
command: 'file-operations:create-from',
name: 'Notebook'
});
}
app.contextMenu.addItem({command: CommandIDs.clearOutputs, selector: '.jp-Notebook .jp-Cell'});
app.contextMenu.addItem({command: CommandIDs.split, selector: '.jp-Notebook .jp-Cell'});
app.contextMenu.addItem({ type: 'separator', selector: '.jp-Notebook', rank: 0 });
app.contextMenu.addItem({command: CommandIDs.undo, selector: '.jp-Notebook', rank: 1});
app.contextMenu.addItem({command: CommandIDs.redo, selector: '.jp-Notebook', rank: 2});
app.contextMenu.addItem({ type: 'separator', selector: '.jp-Notebook', rank: 0 });
app.contextMenu.addItem({command: CommandIDs.createConsole, selector: '.jp-Notebook', rank: 3});
return tracker;
}