Context menu
Controls the global context menu. Extends MessageHub.
- Module:
platform-core
- Source: platform-core/ui/platform/contextmenu-hub.js
- Web Link:
/services/web/platform-core/ui/platform/contextmenu-hub.js
- Status:
stable
- Group:
platform
Basic Usage
If you are using the standard Dirigible view configuration, context menu support is automatically enabled.
If the view is expected to work outside the platform, then you must include platformContextMenu
in your view:
const exampleView = angular.module('exampleView', [
'blimpKit',
'platformView',
'platformContextMenu'
]);
If you are making a custom view, you can include the API using the web link above.
To initialize it:
const contextMenuHub = new ContextMenuHub();
<body>
<context-menu></context-menu>
</body>
Note
Use the context-menu
tag only if the view is expected to work outside Dirigible.
You can capture all right-click events, on a perticular element, using the ng-on-contextmenu
directive:
<div ng-on-contextmenu="showContextMenu($event)"></div>
$scope.showContextMenu = (event) => {
event.preventDefault(); // Prevent default context menu
contextMenuHub.showContextMenu({
ariaLabel: 'example contextmenu',
posX: event.clientX,
posY: event.clientY,
icons: true,
items: [
{
id: 'item1',
label: 'Item 1',
iconClass: 'sap-icon--information',
separator: true
},
{
id: 'item2',
label: 'Item 2',
iconPath: '/path/to/image.svg',
items: [
{
id: 'item3',
label: 'Item 3',
iconClass: 'sap-icon--information',
disabled: true
},
{
id: 'item4',
label: 'Item 4',
iconClass: 'sap-icon--information',
disabled: false
}
]
},
]
}).then((id) => {
if (id) console.log(`You selected context menu item with id '${id}'`);
});
};
Functions
Function | Description | Returns |
---|---|---|
showContextMenu(MenuObject) | Opens a global menu. | Promise |
onContextMenu(handlerFunc) | Registers a listener. Triggered when a context menu should be shown. Returns a function to unregister the listener. | function |
Typedefs
- MenuItem :
Object
- MenuSublist :
Object
- MenuObject :
Object
Note
Params in square brackets are optional.
MenuItem : Object
Menu item parameter.
Properties
Name | Type | Description |
---|---|---|
id | string |
Id of the item. |
label | string |
Label for the item. |
[leftIconClass] | string |
CSS icon class. Icon will be shown before the label. |
[rightIconClass] | string |
CSS icon class. Icon will be shown after the label. |
[leftIconPath] | string |
Icon url path. Icon will be shown before the label. |
[rightIconPath] | string |
Icon url path. Icon will be shown after the label. |
[shortcut] | string |
Secondary text. Most often used as a shotcut hint. |
[separator] | boolean |
Set a menu item separator after this item. |
[disabled] | boolean |
Disable the menu item. |
MenuSublist : Object
Menu sublist parameter.
Properties
Name | Type | Description |
---|---|---|
id | string |
Id of the sublist. |
label | string |
Label for the sublist. |
[separator] | boolean |
Set a menu item separator after this item. |
[iconClass] | string |
CSS icon class. Icon will be shown before the label. |
[iconPath] | string |
Icon url path. Icon will be shown before the label. |
items | Array.<(MenuItem|MenuSublist)> |
List of menu items and/or sublists. |
[disabled] | boolean |
Disable the sublist. |
MenuObject : Object
Main menu parameter.
Properties
Param | Type | Default | Description |
---|---|---|---|
ariaLabel | string |
Accessibility text. | |
posX | number |
The position of the cursor at the X axis. | |
posY | number |
The position of the cursor at the Y axis. | |
[icons] | boolean |
false |
If the contextmenu items have icons. |
items | Array.<(MenuItem|MenuSublist)> |
List of menu items and/or sublists. |
Example
For a full example you can look at sample-platform.