Document toolboxDocument toolbox

Custom Menu Items

Contents:




In the select mode, viewer can display additional custom menu items.

Registering menu items

To register a menu item, pass array of menu item objects according to specs given below:

var menuItem = { name: 'My Menu', callback: this.myFunction, context: this, iconCls: 'icon-molecule', domainId: '525' }; var menuItems = []; menuItems.push(menuItem); HD.EmbededApi.registerContextMenu(menuItems)
  • name - display name for this menu item

  • callbackFn - a functin that will be called when the menu item is clicked

  • context - context that should be set on callback function

  • iconCls - optional icon class that should be used with the menu item

  • domainId - optional domain ID, if provided, ID's from given domain will be added to function call arguments.

Response / Callback arguments

Provided callback function will be called with the following arguments:

var arg = {   contextEntity : "ENT-120681",   contextObject : Object,   selectionObjects : Array,   selectionEntities : Array }; //sample handler: var myFunction = function(arg) { console.log(arg); }
  • contextEntity - Entity that was right clicked

  • contextObject - Object linked to clicked entity

  • selectionEntities - currently selected entities

  • selectionObjects - currently selected objects (linked to entities)

Obtain objects with External ID / Class

Objects are returned with internal HDC id and class. To convert to external ID in a given domain, provide aditional domain ID parameter:

 

{HD.EmbededApi.registerContextMenu("My Item", this.myHandler, this, "my-icon-class");

HD.EmbededApi.registerContextMenu("My Item", this.myHandler, this, "my-icon-class", '523');

Response will be suplemented with EID parameters.

 

Using custom icons

Load your custom CSS or register ad-hoc CSS class.

Sample class that can be used to control custom image with embedded Base64 image (actual Base 64 content replaced by '...'):

Convenient online converter to Base 64

https://www.base64-image.de/

Or with image reference

Using Font Awesome icons

HDC 2.7

It is possible to use any of the Font Awesome icons listed here

http://fontawesome.io/icons/

 

For example, to use this icon:

http://fontawesome.io/icon/battery-three-quarters/

use the follwoing menu item definition:

HDC 2.8

Font icons are no longer supported. Since HDC version 2.8 SVG based icons are used. A new way of defining the icon must be used.

x-fa namesapce is no longer available. Please use one of these namespaces:

Other namespaces are not available. The syntax is fully standard as for Font Awesome 5. Sample use:

HDC 3.4

Since version 3.4 vector icons from Font Awesome PRO are available for use. Only "Regular" icon set can be used. 

Sample