本文整理匯總了TypeScript中@phosphor/widgets.Menu.addItem方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Menu.addItem方法的具體用法?TypeScript Menu.addItem怎麽用?TypeScript Menu.addItem使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@phosphor/widgets.Menu
的用法示例。
在下文中一共展示了Menu.addItem方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: 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: IDocumentRegistry): Menu {
const menu = new Menu({ commands });
menu.addItem({ command: CommandIDs.open });
const ext = DocumentRegistry.extname(path);
const factories = registry.preferredWidgetFactories(ext).map(f => f.name);
if (path && factories.length > 1) {
const command = 'file-operations: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;
}
示例2: Menu
activate: (
app: JupyterFrontEnd,
statusBar: IStatusBar,
editorTracker: IEditorTracker,
settingRegistry: ISettingRegistry
) => {
// Create a menu for switching tabs vs spaces.
const menu = new Menu({ commands: app.commands });
const command = 'fileeditor:change-tabs';
const { shell } = app;
const args: JSONObject = {
insertSpaces: false,
size: 4,
name: 'Indent with Tab'
};
menu.addItem({ command, args });
for (let size of [1, 2, 4, 8]) {
let args: JSONObject = {
insertSpaces: true,
size,
name: `Spaces: ${size} `
};
menu.addItem({ command, args });
}
// Create the status item.
const item = new TabSpaceStatus({ menu });
// Keep a reference to the code editor config from the settings system.
const updateSettings = (settings: ISettingRegistry.ISettings): void => {
const cached = settings.get('editorConfig').composite as Partial<
CodeEditor.IConfig
>;
const config: CodeEditor.IConfig = {
...CodeEditor.defaultConfig,
...cached
};
item.model!.config = config;
};
void Promise.all([
settingRegistry.load('@jupyterlab/fileeditor-extension:plugin'),
app.restored
]).then(([settings]) => {
updateSettings(settings);
settings.changed.connect(updateSettings);
});
// Add the status item.
statusBar.registerStatusItem(
'@jupyterlab/fileeditor-extension:tab-space-status',
{
item,
align: 'right',
rank: 1,
isActive: () => {
return shell.currentWidget && editorTracker.has(shell.currentWidget);
}
}
);
}
示例3: 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);
});
示例4: createMenu
/**
* Create a top level menu for the file browser.
*/
function createMenu(app: JupyterLab): Menu {
const { commands } = app;
const menu = new Menu({ commands });
menu.title.label = 'File';
[
CommandIDs.createLauncher,
'docmanager:save',
'docmanager:save-as',
'docmanager:rename',
'docmanager:restore-checkpoint',
'docmanager:clone',
'docmanager:close',
'docmanager:close-all-files'
].forEach(command => { menu.addItem({ command }); });
menu.addItem({ type: 'separator' });
menu.addItem({ command: 'settingeditor:open' });
return menu;
}
示例5: createMenu
/**
* Create a menu for the help plugin.
*/
function createMenu(): Menu {
let { commands } = app;
let menu = new Menu({ commands });
menu.title.label = category;
menu.addItem({ command: 'about-jupyterlab:open' });
menu.addItem({ command: 'faq-jupyterlab:open' });
menu.addItem({ command: CommandIDs.launchClassic });
menu.addItem({ type: 'separator' });
RESOURCES.forEach(args => { menu.addItem({ args, command }); });
menu.addItem({ type: 'separator' });
menu.addItem({ command: 'statedb:clear' });
return menu;
}
示例6: createMenu
/**
* Create a menu for the help plugin.
*/
function createMenu(): Menu {
let { commands } = app;
let menu = new Menu({ commands });
menu.title.label = category;
menu.addItem({ command: AboutCommandIDs.open });
menu.addItem({ command: FAQCommandIDs.open });
menu.addItem({ command: CommandIDs.launchClassic });
menu.addItem({ type: 'separator' });
RESOURCES.forEach(args => { menu.addItem({ args, command }); });
menu.addItem({ type: 'separator' });
menu.addItem({ command: StateDBCommandIDs.clear });
return menu;
}
示例7: activateConsole
/**
* Activate the console extension.
*/
function activateConsole(app: JupyterLab, manager: IServiceManager, rendermime: IRenderMime, mainMenu: IMainMenu, palette: ICommandPalette, contentFactory: ConsolePanel.IContentFactory, editorServices: IEditorServices, restorer: ILayoutRestorer, launcher: ILauncher | null): IConsoleTracker {
let { commands, shell } = app;
let category = 'Console';
let command: string;
let menu = new Menu({ commands });
// Create an instance tracker for all console panels.
const tracker = new InstanceTracker<ConsolePanel>({
namespace: 'console',
shell
});
// Handle state restoration.
restorer.restore(tracker, {
command: CommandIDs.open,
args: panel => ({
path: panel.console.session.path,
name: panel.console.session.name
}),
name: panel => panel.console.session.path,
when: manager.ready
});
// Add a launcher item if the launcher is available.
if (launcher) {
launcher.add({
name: 'Code Console',
command: CommandIDs.create
});
}
// Set the main menu title.
menu.title.label = category;
/**
* Create a console for a given path.
*/
function createConsole(options: Partial<ConsolePanel.IOptions>): Promise<void> {
return manager.ready.then(() => {
let panel = new ConsolePanel({
manager,
rendermime: rendermime.clone(),
contentFactory,
mimeTypeService: editorServices.mimeTypeService,
...options
});
// Add the console panel to the tracker.
tracker.add(panel);
shell.addToMainArea(panel);
tracker.activate(panel);
});
}
command = CommandIDs.open;
commands.addCommand(command, {
execute: (args: Partial<ConsolePanel.IOptions>) => {
let path = args['path'];
let widget = tracker.find(value => {
if (value.console.session.path === path) {
return true;
}
});
if (widget) {
tracker.activate(widget);
} else {
return manager.ready.then(() => {
let model = find(manager.sessions.running(), item => {
return item.path === path;
});
if (model) {
return createConsole(args);
}
});
}
}
});
command = CommandIDs.create;
commands.addCommand(command, {
label: 'Start New Console',
execute: (args: Partial<ConsolePanel.IOptions>) => {
let basePath = args.basePath || '.';
return createConsole({ basePath, ...args });
}
});
palette.addItem({ command, category });
// Get the current widget and activate unless the args specify otherwise.
function getCurrent(args: JSONObject): ConsolePanel | null {
let widget = tracker.currentWidget;
let activate = args['activate'] !== false;
if (activate && widget) {
tracker.activate(widget);
}
return widget;
}
//.........這裏部分代碼省略.........
示例8: 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, commands: CommandRegistry, registry: DocumentRegistry): Menu {
const path = model.path;
const menu = new Menu({ commands });
menu.addItem({ command: CommandIDs.open });
if (model.type !== 'directory') {
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.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 });
return menu;
}