本文整理汇总了TypeScript中jupyter-js-ui/lib/docmanager.DocumentManager类的典型用法代码示例。如果您正苦于以下问题:TypeScript DocumentManager类的具体用法?TypeScript DocumentManager怎么用?TypeScript DocumentManager使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DocumentManager类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: activateNotebookHandler
/**
* Activate the notebook handler extension.
*/
function activateNotebookHandler(app: Application, manager: DocumentManager, services: JupyterServices): Promise<void> {
let handler = new NotebookFileHandler(
services.contentsManager
);
manager.register(handler);
return Promise.resolve(void 0);
}
示例2: createApp
function createApp(sessionsManager: NotebookSessionManager, specs: IKernelSpecIds): 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: DocumentWidget) => {
// Do nothing for sibling widgets for now.
}
};
let contentsManager = new ContentsManager();
let docManager = new DocumentManager(contentsManager, sessionsManager, specs, opener);
let mFactory = new NotebookModelFactory();
let clipboard = new MimeData();
let wFactory = new NotebookWidgetFactory(rendermime, clipboard);
docManager.registerModelFactory(mFactory, {
name: 'notebook',
contentsOptions: { type: 'notebook' }
});
docManager.registerWidgetFactory(wFactory, {
displayName: 'Notebook',
modelName: 'notebook',
fileExtensions: ['.ipynb'],
defaultFor: ['.ipynb'],
preferKernel: true,
canStartKernel: true
});
let doc = docManager.open(NOTEBOOK);
let nbWidget: NotebookPanel;
doc.populated.connect((d, widget) => {
nbWidget = widget 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(doc);
SplitPanel.setStretch(doc, 1);
window.onresize = () => { panel.update(); };
let saveHandler = () => { nbWidget.context.save(); };
let interruptHandler = () => {
if (nbWidget.context.kernel) {
nbWidget.context.kernel.interrupt();
}
};
let restartHandler = () => { nbWidget.restart(); };
let switchHandler = () => {
let context = nbWidget.context;
if (!context.kernel) {
return;
}
selectKernel(nbWidget.node, context.kernel.name, specs).then(name => {
if (name) {
context.changeKernel({ name });
}
});
};
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 = () => {
//.........这里部分代码省略.........
示例3: FileHandler
activate: (app: Application, manager: DocumentManager, services: JupyterServices) => {
let handler = new FileHandler(services.contentsManager);
manager.registerDefault(handler);
return Promise.resolve(void 0);
}
示例4: main
function main(): void {
let baseUrl = getConfigOption('baseUrl');
let contentsManager = new ContentsManager(baseUrl);
let sessionsManager = new NotebookSessionManager({ baseUrl: baseUrl });
let fbModel = new FileBrowserModel(contentsManager, sessionsManager);
let fbWidget = new FileBrowserWidget(fbModel)
let fileHandler = new FileHandler(contentsManager);
let docManager = new DocumentManager();
docManager.registerDefault(fileHandler);
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;
fbWidget.widgetFactory = model => {
return docManager.open(model);
};
fbModel.openRequested.connect((fbModel, model) => {
let editor = docManager.open(model);
dock.insertTabAfter(editor);
});
fbModel.fileChanged.connect((fbModel, args) => {
docManager.rename(args.oldValue, args.newValue);
});
let keymapManager = new KeymapManager();
keymapManager.add([{
sequence: ['Enter'],
selector: '.jp-DirListing',
handler: () => {
fbWidget.open();
return true;
}
}, {
sequence: ['Ctrl N'], // Add emacs keybinding for select next.
selector: '.jp-DirListing',
handler: () => {
fbWidget.selectNext();
return true;
}
}, {
sequence: ['Ctrl P'], // Add emacs keybinding for select previous.
selector: '.jp-DirListing',
handler: () => {
fbWidget.selectPrevious();
return true;
}
}, {
sequence: ['Accel S'],
selector: '.jp-CodeMirrorWidget',
handler: () => {
docManager.save();
return true;
}
}]);
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',
handler: () => { fbWidget.rename(); }
}),
new MenuItem({
text: '&Delete',
icon: 'fa fa-remove',
shortcut: 'Ctrl+D',
handler: () => { fbWidget.delete(); }
}),
new MenuItem({
text: 'Duplicate',
icon: 'fa fa-copy',
handler: () => { fbWidget.duplicate(); }
}),
new MenuItem({
text: 'Cut',
icon: 'fa fa-cut',
shortcut: 'Ctrl+X',
handler: () => { fbWidget.cut(); }
}),
//.........这里部分代码省略.........
示例5:
let onOpenRequested = (model: IContentsModel) => {
let widget = manager.open(model);
if (!widget.id) widget.id = `document-manager-${++id}`;
if (!widget.isAttached) app.shell.addToMainArea(widget);
let stack = widget.parent;
if (!stack) {
return;
}
let tabs = stack.parent;
if (tabs instanceof TabPanel) {
tabs.currentWidget = widget;
}
};