本文整理匯總了TypeScript中@jupyterlab/docregistry.IDocumentRegistry.addWidgetFactory方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript IDocumentRegistry.addWidgetFactory方法的具體用法?TypeScript IDocumentRegistry.addWidgetFactory怎麽用?TypeScript IDocumentRegistry.addWidgetFactory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@jupyterlab/docregistry.IDocumentRegistry
的用法示例。
在下文中一共展示了IDocumentRegistry.addWidgetFactory方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的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 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); });
});
}
示例3: 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;
}
示例4: 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;
}
示例5: 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,
//.........這裏部分代碼省略.........
示例6: 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;
}