本文整理匯總了TypeScript中jupyterlab/lib/docregistry.DocumentRegistry.addModelFactory方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript DocumentRegistry.addModelFactory方法的具體用法?TypeScript DocumentRegistry.addModelFactory怎麽用?TypeScript DocumentRegistry.addModelFactory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類jupyterlab/lib/docregistry.DocumentRegistry
的用法示例。
在下文中一共展示了DocumentRegistry.addModelFactory方法的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: createApp
function createApp(manager: ServiceManager.IManager): void {
let widgets: Widget[] = [];
let activeWidget: Widget;
let opener = {
open: (widget: Widget) => {
if (widgets.indexOf(widget) === -1) {
dock.addWidget(widget, { mode: 'tab-after' });
widgets.push(widget);
}
dock.activateWidget(widget);
activeWidget = widget;
widget.disposed.connect((w: Widget) => {
let index = widgets.indexOf(w);
widgets.splice(index, 1);
});
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
manager,
opener
});
let mFactory = new TextModelFactory();
let editorServices = {
factory: new CodeMirrorEditorFactory(),
mimeTypeService: new CodeMirrorMimeTypeService()
};
let wFactory = new EditorWidgetFactory({
editorServices,
factoryOptions: {
name: 'Editor',
modelName: 'text',
fileExtensions: ['*'],
defaultFor: ['*'],
preferKernel: false,
canStartKernel: true
}
});
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory);
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
let fbModel = new FileBrowserModel({ manager });
let fbWidget = new FileBrowser({
commands,
keymap,
model: fbModel,
manager: docManager,
});
let panel = new SplitPanel();
panel.id = 'main';
panel.addWidget(fbWidget);
SplitPanel.setStretch(fbWidget, 0);
let dock = new DockPanel();
panel.addWidget(dock);
SplitPanel.setStretch(dock, 1);
dock.spacing = 8;
document.addEventListener('focus', event => {
for (let i = 0; i < widgets.length; i++) {
let widget = widgets[i];
if (widget.node.contains(event.target as HTMLElement)) {
activeWidget = widget;
break;
}
}
});
commands.addCommand('file-open', {
label: 'Open',
icon: 'fa fa-folder-open-o',
mnemonic: 0,
execute: () => { fbWidget.open(); }
});
commands.addCommand('file-rename', {
label: 'Rename',
icon: 'fa fa-edit',
mnemonic: 0,
execute: () => { fbWidget.rename(); }
});
commands.addCommand('file-save', {
execute: () => {
let context = docManager.contextForWidget(activeWidget);
context.save();
}
});
commands.addCommand('file-cut', {
label: 'Cut',
icon: 'fa fa-cut',
execute: () => { fbWidget.cut(); }
});
commands.addCommand('file-copy', {
label: 'Copy',
icon: 'fa fa-copy',
//.........這裏部分代碼省略.........
示例2: createApp
function createApp(manager: IServiceManager): void {
// Initialize the keymap manager with the bindings.
let commands = new CommandRegistry();
let keymap = new Keymap({ commands });
let useCapture = true;
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
keymap.processKeydownEvent(event);
}, useCapture);
const transformers = [
new JavascriptRenderer(),
new MarkdownRenderer(),
new HTMLRenderer(),
new ImageRenderer(),
new SVGRenderer(),
new LatexRenderer(),
new TextRenderer()
];
let renderers: RenderMime.MimeMap<RenderMime.IRenderer> = {};
let order: string[] = [];
for (let t of transformers) {
for (let m of t.mimetypes) {
renderers[m] = t;
order.push(m);
}
}
let sanitizer = defaultSanitizer;
let rendermime = new RenderMime({ renderers, order, sanitizer });
let opener = {
open: (widget: Widget) => {
// Do nothing for sibling widgets for now.
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
manager,
opener
});
let mFactory = new NotebookModelFactory();
let clipboard = new MimeData();
let renderer = CodeMirrorNotebookPanelRenderer.defaultRenderer;
let wFactory = new NotebookWidgetFactory(rendermime, clipboard, renderer);
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory, {
displayName: 'Notebook',
modelName: 'notebook',
fileExtensions: ['.ipynb'],
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true
});
let nbWidget = docManager.open(NOTEBOOK) as NotebookPanel;
let palette = new CommandPalette({ commands, keymap });
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
panel.addWidget(palette);
panel.addWidget(nbWidget);
Widget.attach(panel, document.body);
SplitPanel.setStretch(nbWidget, 1);
window.onresize = () => panel.update();
commands.addCommand(cmdIds.save, {
label: 'Save',
execute: () => nbWidget.context.save()
});
commands.addCommand(cmdIds.interrupt, {
label: 'Interrupt',
execute: () => {
if (nbWidget.context.kernel) {
nbWidget.context.kernel.interrupt();
}
}
});
commands.addCommand(cmdIds.restart, {
label: 'Restart Kernel',
execute: () => restartKernel(nbWidget.kernel, nbWidget.node)
});
commands.addCommand(cmdIds.switchKernel, {
label: 'Switch Kernel',
execute: () => selectKernelForContext(nbWidget.context, nbWidget.node)
});
commands.addCommand(cmdIds.runAndAdvance, {
label: 'Run and Advance',
execute: () => {
NotebookActions.runAndAdvance(nbWidget.content, nbWidget.context.kernel);
}
});
commands.addCommand(cmdIds.editMode, {
label: 'Edit Mode',
//.........這裏部分代碼省略.........
示例3: createApp
function createApp(sessionManager: SessionManager, kernelspecs: IKernel.ISpecModels): void {
// Initialize the keymap manager with the bindings.
let keymap = new KeymapManager();
let useCapture = true;
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
keymap.processKeydownEvent(event);
}, useCapture);
const transformers = [
new JavascriptRenderer(),
new MarkdownRenderer(),
new HTMLRenderer(),
new ImageRenderer(),
new SVGRenderer(),
new LatexRenderer(),
new TextRenderer()
];
let renderers: MimeMap<IRenderer<Widget>> = {};
let order: string[] = [];
for (let t of transformers) {
for (let m of t.mimetypes) {
renderers[m] = t;
order.push(m);
}
}
let rendermime = new RenderMime<Widget>(renderers, order);
let opener = {
open: (widget: Widget) => {
// Do nothing for sibling widgets for now.
}
};
let contentsManager = new ContentsManager();
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
contentsManager,
sessionManager,
kernelspecs,
opener
});
let mFactory = new NotebookModelFactory();
let clipboard = new MimeData();
let wFactory = new NotebookWidgetFactory(rendermime, clipboard);
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory, {
displayName: 'Notebook',
modelName: 'notebook',
fileExtensions: ['.ipynb'],
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true
});
let nbWidget = docManager.open(NOTEBOOK) as NotebookPanel;
let pModel = new StandardPaletteModel();
let palette = new CommandPalette();
palette.model = pModel;
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = SplitPanel.Horizontal;
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
panel.attach(document.body);
panel.addChild(palette);
panel.addChild(nbWidget);
SplitPanel.setStretch(nbWidget, 1);
window.onresize = () => panel.update();
let saveHandler = () => nbWidget.context.save();
let interruptHandler = () => {
if (nbWidget.context.kernel) {
nbWidget.context.kernel.interrupt();
}
};
let restartHandler = () => {
restartKernel(nbWidget.kernel, nbWidget.node);
};
let switchHandler = () => {
selectKernelForContext(nbWidget.context, nbWidget.node);
};
let runAdvanceHandler = () => {
NotebookActions.runAndAdvance(nbWidget.content, nbWidget.context.kernel);
};
let editHandler = () => { nbWidget.content.mode = 'edit'; };
let commandHandler = () => { nbWidget.content.mode = 'command'; };
let codeHandler = () => {
NotebookActions.changeCellType(nbWidget.content, 'code');
};
let markdownHandler = () => {
NotebookActions.changeCellType(nbWidget.content, 'markdown');
};
let rawHandler = () => {
NotebookActions.changeCellType(nbWidget.content, 'raw');
};
let selectBelowHandler = () => {
//.........這裏部分代碼省略.........
示例4: createApp
function createApp(sessionsManager: NotebookSessionManager, specs: IKernelSpecIds): void {
let contentsManager = new ContentsManager();
let widgets: DocumentWrapper[] = [];
let activeWidget: DocumentWrapper;
let opener = {
open: (widget: DocumentWrapper) => {
if (widgets.indexOf(widget) === -1) {
dock.insertTabAfter(widget);
widgets.push(widget);
}
dock.selectWidget(widget);
activeWidget = widget;
widget.disposed.connect((w: DocumentWrapper) => {
let index = widgets.indexOf(w);
widgets.splice(index, 1);
});
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager(
docRegistry, contentsManager, sessionsManager, specs, opener
);
let mFactory = new TextModelFactory();
let wFactory = new EditorWidgetFactory();
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory, {
displayName: 'Editor',
modelName: 'text',
fileExtensions: ['.*'],
defaultFor: ['.*'],
preferKernel: false,
canStartKernel: true
});
let fbModel = new FileBrowserModel(contentsManager, sessionsManager, specs);
let fbWidget = new FileBrowserWidget(fbModel, docManager, opener);
let panel = new SplitPanel();
panel.id = 'main';
panel.addChild(fbWidget);
SplitPanel.setStretch(fbWidget, 0);
let dock = new DockPanel();
panel.addChild(dock);
SplitPanel.setStretch(dock, 1);
dock.spacing = 8;
document.addEventListener('focus', event => {
for (let i = 0; i < widgets.length; i++) {
let widget = widgets[i];
if (widget.node.contains(event.target as HTMLElement)) {
activeWidget = widget;
break;
}
}
});
let keymapManager = new KeymapManager();
keymapManager.add([{
sequence: ['Enter'],
selector: '.jp-DirListing',
handler: () => {
fbWidget.open();
}
}, {
sequence: ['Ctrl N'], // Add emacs keybinding for select next.
selector: '.jp-DirListing',
handler: () => {
fbWidget.selectNext();
}
}, {
sequence: ['Ctrl P'], // Add emacs keybinding for select previous.
selector: '.jp-DirListing',
handler: () => {
fbWidget.selectPrevious();
}
}, {
sequence: ['Accel S'],
selector: '.jp-CodeMirrorWidget',
handler: () => {
activeWidget.context.save();
}
}]);
window.addEventListener('keydown', (event) => {
keymapManager.processKeydownEvent(event);
});
let contextMenu = new Menu([
new MenuItem({
text: '&Open',
icon: 'fa fa-folder-open-o',
shortcut: 'Ctrl+O',
handler: () => { fbWidget.open(); }
}),
new MenuItem({
text: '&Rename',
icon: 'fa fa-edit',
shortcut: 'Ctrl+R',
//.........這裏部分代碼省略.........
示例5: createApp
function createApp(manager: ServiceManager.IManager): void {
// Initialize the command registry with the bindings.
let commands = new CommandRegistry();
let useCapture = true;
// Setup the keydown listener for the document.
document.addEventListener('keydown', event => {
commands.processKeydownEvent(event);
}, useCapture);
let rendermime = new RenderMime({ items: RenderMime.getDefaultItems() });
let opener = {
open: (widget: Widget) => {
// Do nothing for sibling widgets for now.
}
};
let docRegistry = new DocumentRegistry();
let docManager = new DocumentManager({
registry: docRegistry,
manager,
opener
});
let mFactory = new NotebookModelFactory({});
let clipboard = new MimeData();
let editorFactory = editorServices.factoryService.newInlineEditor;
let contentFactory = new NotebookPanel.ContentFactory({ editorFactory });
let wFactory = new NotebookWidgetFactory({
name: 'Notebook',
modelName: 'notebook',
fileExtensions: ['.ipynb'],
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true,
rendermime, clipboard, contentFactory,
mimeTypeService: editorServices.mimeTypeService
});
docRegistry.addModelFactory(mFactory);
docRegistry.addWidgetFactory(wFactory);
let nbWidget = docManager.open(NOTEBOOK) as NotebookPanel;
let palette = new CommandPalette({ commands });
let panel = new SplitPanel();
panel.id = 'main';
panel.orientation = 'horizontal';
panel.spacing = 0;
SplitPanel.setStretch(palette, 0);
panel.addWidget(palette);
panel.addWidget(nbWidget);
Widget.attach(panel, document.body);
SplitPanel.setStretch(nbWidget, 1);
window.onresize = () => panel.update();
commands.addCommand(cmdIds.save, {
label: 'Save',
execute: () => nbWidget.context.save()
});
commands.addCommand(cmdIds.interrupt, {
label: 'Interrupt',
execute: () => {
if (nbWidget.context.kernel) {
nbWidget.context.kernel.interrupt();
}
}
});
commands.addCommand(cmdIds.restart, {
label: 'Restart Kernel',
execute: () => restartKernel(nbWidget.kernel, nbWidget.node)
});
commands.addCommand(cmdIds.switchKernel, {
label: 'Switch Kernel',
execute: () => selectKernelForContext(nbWidget.context, manager.sessions, nbWidget.node)
});
commands.addCommand(cmdIds.runAndAdvance, {
label: 'Run and Advance',
execute: () => {
NotebookActions.runAndAdvance(nbWidget.notebook, nbWidget.context.kernel);
}
});
commands.addCommand(cmdIds.editMode, {
label: 'Edit Mode',
execute: () => { nbWidget.notebook.mode = 'edit'; }
});
commands.addCommand(cmdIds.commandMode, {
label: 'Command Mode',
execute: () => { nbWidget.notebook.mode = 'command'; }
});
commands.addCommand(cmdIds.selectBelow, {
label: 'Select Below',
execute: () => NotebookActions.selectBelow(nbWidget.notebook)
});
commands.addCommand(cmdIds.selectAbove, {
label: 'Select Above',
execute: () => NotebookActions.selectAbove(nbWidget.notebook)
});
commands.addCommand(cmdIds.extendAbove, {
label: 'Extend Above',
//.........這裏部分代碼省略.........