本文整理汇总了TypeScript中@phosphor/disposable.DisposableSet类的典型用法代码示例。如果您正苦于以下问题:TypeScript DisposableSet类的具体用法?TypeScript DisposableSet怎么用?TypeScript DisposableSet使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DisposableSet类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: DisposableSet
const onSpecsChanged = () => {
if (disposables) {
disposables.dispose();
disposables = null;
}
const specs = manager.specs;
if (!specs) {
return;
}
disposables = new DisposableSet();
let baseUrl = PageConfig.getBaseUrl();
for (let name in specs.kernelspecs) {
let rank = name === specs.default ? 0 : Infinity;
let kernelIconUrl = specs.kernelspecs[name].resources['logo-64x64'];
if (kernelIconUrl) {
let index = kernelIconUrl.indexOf('kernelspecs');
kernelIconUrl = baseUrl + kernelIconUrl.slice(index);
}
disposables.add(
launcher.add({
command: CommandIDs.create,
args: { isLauncher: true, kernelPreference: { name } },
category: 'Console',
rank,
kernelIconUrl
})
);
}
};
示例2: toArray
node.addEventListener('contextmenu', (event: MouseEvent) => {
event.preventDefault();
let path = fbWidget.pathForClick(event) || '';
let ext = DocumentRegistry.extname(path);
let factories = registry.preferredWidgetFactories(ext);
let widgetNames = toArray(map(factories, factory => factory.name));
let prefix = `${namespace}-contextmenu-${++Private.id}`;
let openWith: Menu = null;
if (path && widgetNames.length > 1) {
let disposables = new DisposableSet();
let command: string;
openWith = new Menu({ commands });
openWith.title.label = 'Open With...';
openWith.disposed.connect(() => { disposables.dispose(); });
for (let widgetName of widgetNames) {
command = `${prefix}:${widgetName}`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.openPath(path, widgetName),
label: widgetName
}));
openWith.addItem({ command });
}
}
let menu = createContextMenu(fbWidget, openWith);
menu.open(event.clientX, event.clientY);
});
示例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(fbWidget: FileBrowser, openWith: Menu): Menu {
let { commands } = fbWidget;
let menu = new Menu({ commands });
let prefix = `${namespace}-${++Private.id}`;
let disposables = new DisposableSet();
let command: string;
// Remove all the commands associated with this menu upon disposal.
menu.disposed.connect(() => { disposables.dispose(); });
command = `${prefix}:open`;
disposables.add(commands.addCommand(command, {
execute: () => { fbWidget.open(); },
icon: 'jp-MaterialIcon jp-OpenFolderIcon',
label: 'Open',
mnemonic: 0
}));
menu.addItem({ command });
if (openWith) {
menu.addItem({ type: 'submenu', submenu: openWith });
}
command = `${prefix}:rename`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.rename(),
icon: 'jp-MaterialIcon jp-EditIcon',
label: 'Rename',
mnemonic: 0
}));
menu.addItem({ command });
command = `${prefix}:delete`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.delete(),
icon: 'jp-MaterialIcon jp-CloseIcon',
label: 'Delete',
mnemonic: 0
}));
menu.addItem({ command });
command = `${prefix}:duplicate`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.duplicate(),
icon: 'jp-MaterialIcon jp-CopyIcon',
label: 'Duplicate'
}));
menu.addItem({ command });
command = `${prefix}:cut`;
disposables.add(commands.addCommand(command, {
execute: () => { fbWidget.cut(); },
icon: 'jp-MaterialIcon jp-CutIcon',
label: 'Cut'
}));
menu.addItem({ command });
command = `${prefix}:copy`;
disposables.add(commands.addCommand(command, {
execute: () => { fbWidget.copy(); },
icon: 'jp-MaterialIcon jp-CopyIcon',
label: 'Copy',
mnemonic: 0
}));
menu.addItem({ command });
command = `${prefix}:paste`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.paste(),
icon: 'jp-MaterialIcon jp-PasteIcon',
label: 'Paste',
mnemonic: 0
}));
menu.addItem({ command });
command = `${prefix}:download`;
disposables.add(commands.addCommand(command, {
execute: () => { fbWidget.download(); },
icon: 'jp-MaterialIcon jp-DownloadIcon',
label: 'Download'
}));
menu.addItem({ command });
command = `${prefix}:shutdown`;
disposables.add(commands.addCommand(command, {
execute: () => fbWidget.shutdownKernels(),
icon: 'jp-MaterialIcon jp-StopIcon',
label: 'Shutdown Kernel'
}));
menu.addItem({ command });
menu.disposed.connect(() => { disposables.dispose(); });
//.........这里部分代码省略.........