本文整理汇总了TypeScript中@jupyterlab/apputils.ILayoutRestorer类的典型用法代码示例。如果您正苦于以下问题:TypeScript ILayoutRestorer类的具体用法?TypeScript ILayoutRestorer怎么用?TypeScript ILayoutRestorer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ILayoutRestorer类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: 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); });
});
}
示例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: each
activate: (app: JupyterLab, restorer: ILayoutRestorer): void => {
const { shell } = app;
const tabs = new TabBar<Widget>({ orientation: 'vertical' });
const header = document.createElement('header');
restorer.add(tabs, 'tab-manager');
tabs.id = 'tab-manager';
tabs.title.label = 'Tabs';
header.textContent = 'Open Tabs';
tabs.node.insertBefore(header, tabs.contentNode);
shell.addToLeftArea(tabs, { rank: 600 });
app.restored.then(() => {
const populate = () => {
tabs.clearTabs();
each(shell.widgets('main'), widget => { tabs.addTab(widget.title); });
};
// Connect signal handlers.
shell.layoutModified.connect(() => { populate(); });
tabs.tabActivateRequested.connect((sender, tab) => {
shell.activateById(tab.title.owner.id);
});
tabs.tabCloseRequested.connect((sender, tab) => {
tab.title.owner.close();
});
// Populate the tab manager.
populate();
});
},
示例4: activateFileBrowser
/**
* Activate the file browser in the sidebar.
*/
function activateFileBrowser(app: JupyterLab, factory: IFileBrowserFactory, docManager: IDocumentManager, mainMenu: IMainMenu, palette: ICommandPalette, restorer: ILayoutRestorer): void {
const { commands } = app;
const fbWidget = factory.createFileBrowser('filebrowser', {
commands,
documentManager: docManager
});
// Let the application restorer track the primary file browser (that is
// automatically created) for restoration of application state (e.g. setting
// the file browser as the current side bar widget).
//
// All other file browsers created by using the factory function are
// responsible for their own restoration behavior, if any.
restorer.add(fbWidget, namespace);
addCommands(app, factory.tracker, fbWidget);
fbWidget.model.pathChanged.connect((sender: any, args: IChangedArgs<string>) => {
docManager.cwd = args.newValue;
});
fbWidget.title.label = 'Files';
app.shell.addToLeftArea(fbWidget, { rank: 100 });
// If the layout is a fresh session without saved data, open file browser.
app.restored.then(layout => {
if (layout.fresh) {
app.commands.execute(CommandIDs.showBrowser, void 0);
}
});
}
示例5: 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);
}
示例6: activate
/**
* Activate the running plugin.
*/
function activate(app: JupyterLab, services: IServiceManager, restorer: ILayoutRestorer): void {
let running = new RunningSessions({ manager: services });
running.id = 'jp-running-sessions';
running.title.label = 'Running';
// Let the application restorer track the running panel for restoration of
// application state (e.g. setting the running panel as the current side bar
// widget).
restorer.add(running, 'running-sessions');
running.sessionOpenRequested.connect((sender, model) => {
let path = model.notebook.path;
let name = path.split('/').pop();
if (CONSOLE_REGEX.test(name)) {
app.commands.execute('console:open', { id: model.id });
} else {
app.commands.execute('file-operations:open', { path });
}
});
running.terminalOpenRequested.connect((sender, model) => {
app.commands.execute('terminal:open', { name: model.name });
});
// Rank has been chosen somewhat arbitrarily to give priority to the running
// sessions widget in the sidebar.
app.shell.addToLeftArea(running, { rank: 200 });
}
示例7: activate
/**
* Activate the launcher.
*/
function activate(app: JupyterLab, services: IServiceManager, palette: ICommandPalette, linker: ICommandLinker, restorer: ILayoutRestorer): ILauncher {
const { commands, shell } = app;
let model = new LauncherModel();
let widget = new LauncherWidget({ linker });
widget.model = model;
widget.id = 'launcher';
widget.title.label = 'Launcher';
// Let the application restorer track the launcher for restoration of
// application state (e.g. setting the launcher as the current side bar
// widget).
restorer.add(widget, 'launcher');
commands.addCommand(CommandIDs.show, {
label: 'Show Launcher',
execute: () => {
if (!widget.isAttached) {
shell.addToLeftArea(widget);
}
shell.activateById(widget.id);
}
});
palette.addItem({ command: CommandIDs.show, category: 'Help' });
shell.addToLeftArea(widget);
return model;
}
示例8: newInspectorPanel
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;
}
示例9: 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);
}
});
}
示例10: 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;
}