menu knows best (#53214)

This commit is contained in:
SteVen Batten
2018-06-28 02:16:41 -07:00
committed by Benjamin Pasero
parent 1421f34371
commit b09094ea9e
2 changed files with 21 additions and 20 deletions

View File

@@ -53,27 +53,9 @@ export class Menu {
parent: this
};
const getActionItem = (action: IAction) => {
if (action instanceof Separator) {
return new ActionItem(options.context, action, { icon: true });
} else if (action instanceof SubmenuAction) {
return new SubmenuActionItem(action, action.entries, parentData, options);
} else {
const menuItemOptions: IActionItemOptions = {};
if (options.getKeyBinding) {
const keybinding = options.getKeyBinding(action);
if (keybinding) {
menuItemOptions.keybinding = keybinding.getLabel();
}
}
return new MenuActionItem(options.context, action, menuItemOptions);
}
};
this.actionBar = new ActionBar(menuContainer, {
orientation: ActionsOrientation.VERTICAL,
actionItemProvider: options.actionItemProvider ? options.actionItemProvider : getActionItem,
actionItemProvider: action => this.doGetActionItem(action, options, parentData),
context: options.context,
actionRunner: options.actionRunner,
isMenu: true,
@@ -83,6 +65,24 @@ export class Menu {
this.actionBar.push(actions, { icon: true, label: true, isMenu: true });
}
private doGetActionItem(action: IAction, options: IMenuOptions, parentData: ISubMenuData): ActionItem {
if (action instanceof Separator) {
return new ActionItem(options.context, action, { icon: true });
} else if (action instanceof SubmenuAction) {
return new SubmenuActionItem(action, action.entries, parentData, options);
} else {
const menuItemOptions: IActionItemOptions = {};
if (options.getKeyBinding) {
const keybinding = options.getKeyBinding(action);
if (keybinding) {
menuItemOptions.keybinding = keybinding.getLabel();
}
}
return new MenuActionItem(options.context, action, menuItemOptions);
}
}
public get onDidCancel(): Event<void> {
return this.actionBar.onDidCancel;
}