本文整理汇总了TypeScript中@jupyterlab/docregistry.DocumentRegistry.preferredWidgetFactories方法的典型用法代码示例。如果您正苦于以下问题:TypeScript DocumentRegistry.preferredWidgetFactories方法的具体用法?TypeScript DocumentRegistry.preferredWidgetFactories怎么用?TypeScript DocumentRegistry.preferredWidgetFactories使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@jupyterlab/docregistry.DocumentRegistry
的用法示例。
在下文中一共展示了DocumentRegistry.preferredWidgetFactories方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: it
it('should select the factory for a given extension', () => {
let factory = createFactory();
registry.addWidgetFactory(factory);
let mdFactory = new WidgetFactory({
name: 'markdown',
fileTypes: ['markdown'],
});
registry.addWidgetFactory(mdFactory);
expect(registry.preferredWidgetFactories('a.txt')[0]).to.be(factory);
expect(registry.preferredWidgetFactories('a.md')[0]).to.be(mdFactory);
});
示例2: it
it('should handle just a multi-part extension', () => {
registry.addModelFactory(new TextModelFactory());
let factory = new WidgetFactory({
name: 'table',
fileExtensions: ['.table.json'],
});
registry.addWidgetFactory(factory);
let factories = registry.preferredWidgetFactories('.table.json');
expect(toArray(factories)).to.eql([factory]);
factories = registry.preferredWidgetFactories('.json');
expect(toArray(factories)).to.eql([]);
});
示例3: createContextMenu
/**
* Create a context menu for the file browser listing.
*
* #### Notes
* This function generates temporary commands with an incremented name. These
* commands are disposed when the menu itself is disposed.
*/
function createContextMenu(
model: Contents.IModel | undefined,
commands: CommandRegistry,
registry: DocumentRegistry
): Menu {
const menu = new Menu({ commands });
// If the user did not click on any file, we still want to show
// paste as a possibility.
if (!model) {
menu.addItem({ command: CommandIDs.paste });
return menu;
}
menu.addItem({ command: CommandIDs.open });
const path = model.path;
if (model.type !== 'directory') {
const factories = registry.preferredWidgetFactories(path).map(f => f.name);
const notebookFactory = registry.getWidgetFactory('notebook').name;
if (
model.type === 'notebook' &&
factories.indexOf(notebookFactory) === -1
) {
factories.unshift(notebookFactory);
}
if (path && factories.length > 1) {
const command = 'docmanager:open';
const openWith = new Menu({ commands });
openWith.title.label = 'Open With';
factories.forEach(factory => {
openWith.addItem({ args: { factory, path }, command });
});
menu.addItem({ type: 'submenu', submenu: openWith });
}
menu.addItem({ command: CommandIDs.openBrowserTab });
}
menu.addItem({ command: CommandIDs.rename });
menu.addItem({ command: CommandIDs.del });
menu.addItem({ command: CommandIDs.cut });
if (model.type !== 'directory') {
menu.addItem({ command: CommandIDs.copy });
}
menu.addItem({ command: CommandIDs.paste });
if (model.type !== 'directory') {
menu.addItem({ command: CommandIDs.duplicate });
menu.addItem({ command: CommandIDs.download });
menu.addItem({ command: CommandIDs.shutdown });
}
menu.addItem({ command: CommandIDs.share });
menu.addItem({ command: CommandIDs.copyPath });
menu.addItem({ command: CommandIDs.copyDownloadLink });
return menu;
}
示例4: createContextMenu
/**
* Create a context menu for the file browser listing.
*
* #### Notes
* This function generates temporary commands with an incremented name. These
* commands are disposed when the menu itself is disposed.
*/
function createContextMenu(path: string, commands: CommandRegistry, registry: DocumentRegistry): Menu {
const menu = new Menu({ commands });
menu.addItem({ command: CommandIDs.open });
const factories = registry.preferredWidgetFactories(path).map(f => f.name);
if (path && factories.length > 1) {
const command = 'docmanager:open';
const openWith = new Menu({ commands });
openWith.title.label = 'Open With...';
factories.forEach(factory => {
openWith.addItem({ args: { factory, path }, command });
});
menu.addItem({ type: 'submenu', submenu: openWith });
}
menu.addItem({ command: CommandIDs.rename });
menu.addItem({ command: CommandIDs.del });
menu.addItem({ command: CommandIDs.duplicate });
menu.addItem({ command: CommandIDs.cut });
menu.addItem({ command: CommandIDs.copy });
menu.addItem({ command: CommandIDs.paste });
menu.addItem({ command: CommandIDs.download });
menu.addItem({ command: CommandIDs.shutdown });
return menu;
}
示例5: it
it('should handle multi-part extensions', () => {
const factory = createFactory();
registry.addWidgetFactory(factory);
const tFactory = new WidgetFactory({
name: 'table',
fileTypes: ['tablejson']
});
registry.addWidgetFactory(tFactory);
const jFactory = new WidgetFactory({
name: 'json',
fileTypes: ['json']
});
registry.addWidgetFactory(jFactory);
let factories = registry.preferredWidgetFactories('foo.table.json');
expect(toArray(factories)).to.deep.equal([tFactory, jFactory]);
factories = registry.preferredWidgetFactories('foo.json');
expect(toArray(factories)).to.deep.equal([jFactory]);
});