Class: PopupMenu

PopupMenu

A Popup Menu control allows you to create a popup menu on other controls. It must be opened programmatically (usually through other controls). A PopupMenu control provides the following configuration properties in Process Designer:

Appearance

Show Label: Show the control's label boolean
Label Placement: Set the location of the label relative to the rest of the control. Note: has no effect if label is not being shown
{Top | Left}
string
Horizontal Alignment: Whether menu should be aligned to the left or right of the control contained within this
{Left | Right}
string
Vertical Position: Sets if menu will appear above or below the control inside of it
{Bottom | Top}
string
Drop Shadow: Give the menu a shadow boolean
Width: Width of "envelope" wrapping the contained view/element string

Behavior

Make Sticky: Prevents menu from auto-closing when a menu item is clicked or when the menu is no longer in focus boolean

Menu Items: Items in the menu MenuItemSpec[]
Command Command to execute when this menu item is selected string
Item type Type of menu item this is (affects how item is displayed)
{Label | Separator | Section Header}
string
Icon Icon to add to this item (leave blank for no icon) string
Item text Text to display for this item (no text is displayed for separators) string
Badge shape Badge shape to use (if any)
{None | Square | Rounded}
string
Badge color Badge color style
{Default | Primary | Info | Success | Warning | Danger}
string
Badge text Text to add to badge string

Events

On Load:
Description: Triggers whenever the view is loaded.
Example:
me.setMenuVisible(true)
On Item Click:
Description: Triggers when an item is clicked.
Example:
${Text1}.setLabelPosition(command) //sets the label position of the Text1 control to the value of command
//the value of command is set in the menu item command property
Context Variables command {string}
Articles
Popup Menu

new PopupMenu()

This constructor is never used explicitly.

Extends

Members

Methods

Add/replace CSS class(es) for this control
Name Type Description
name string CSS class name(s) to add to the control. Separate class names by a space if more than one class.
replaced string optional CSS class name(s) to be replaced by the first argument. Separate class names by a space if more than one class.
Example
Button.addClass("green");

addMenuItem(item)

Add menu item to end of item list
JSON Structure of menu items
{
     command : string
     itemType : "L"=Label | "S"=Seperator | "H"=Section Header
     icon : string
     iconText : string
     badgeShape : "N"=None | "S"=Square | "R"=Rounded
     badgeColor : "D"=Default | "P"=Primary | "I"=Info | "S"=Success | "W"=Warning | "G"=Danger
     badgeText : string
}
Name Type Description
item MenuItem Item to set in control (see method description for object structure)
Retrieve bound data associated this view/control. Only works for views/controls with bound data.
Returns:
Type Description
Object Value of bound data. undefined if the view has no data binding.
Example
var dec1 = MyDecimal.getData();

getLabel(){string}

Get label associated with control
Returns:
Type Description
string

getLabelPlacement(){string}

Get label placement for control
Returns:
Type Description
string {"T"=Top | "L"=Left}

getMenuItem(index){MenuItem}

Get menu item at specified index.
Name Type Description
index any when numeric this is the Index of menu item to get, when a string it is the Command associated with the menu item to be returned
Returns:
Type Description
MenuItem or null if not located
JSON Structure of menu items
{
     command : string
     itemType : "L"=Label | "S"=Seperator | "H"=Section Header
     icon : string
     iconText : string
     badgeShape : "N"=None | "S"=Square | "R"=Rounded
     badgeColor : "D"=Default | "P"=Primary | "I"=Info | "S"=Success | "W"=Warning | "G"=Danger
     badgeText : string
}

getMenuItemCount(){integer}

Get number of items in menu
Returns:
Type Description
integer

getMenuItemIndex(when)

Get the index of the specified menu item or -1 if the menuItem cannot be located.
Name Type Description
when any a string it is the Command associated with the menu item whose index is to be returned, when an object it is the menuitem whose index is to be returned
Returns:
index

getMenuItems(){Array.<MenuItem>}

Returns:
Type Description
Array.<MenuItem>
JSON Structure of menu items
{
     command : string
     itemType : "L"=Label | "S"=Seperator | "H"=Section Header
     icon : string
     iconText : string
     badgeShape : "N"=None | "S"=Square | "R"=Rounded
     badgeColor : "D"=Default | "P"=Primary | "I"=Info | "S"=Success | "W"=Warning | "G"=Danger
     badgeText : string
}

getType(){string}

Get descriptive string representing the type of control
Returns:
Type Description
string
Hide this view/control
Name Type Description
collapseFlag boolean Set to true to collapse the view (equivalent to a view setting of "NONE")
Example
MyView.hide();
Indicates bound status of control.
Returns:
Type Description
boolean True if the control is bound to coach data.
Checks if the view is enabled or not
Returns:
Type Description
boolean Enabled status
Example
var enabled = MyView.isEnabled();
Checks if control label is visible
Returns:
Type Description
boolean Label visibility status
Example
var labelVisible = MyView.isLabelVisible();

isMenuVisible(){boolean}

Get the visibility of the menu
Returns:
Type Description
boolean
Returns the valid status as last set by the setValid() method.
Returns:
Type Description
boolean Validity status. true if setValid(false, ...) was never called
Example
var valid = MyView.isValid();
Checks whether or not view is visible
Returns:
Type Description
boolean Visibility status
Example
var visible = MyView.isVisible();
Propagates value change of control up through parent views
Name Type Description
event Event Value change event (usually an onchange event)
Returns:
Type Description
boolean True if a formula update was triggered on the control's parent, otherwise false
Example
MyView.propagateUp(event);
Only for formula-enabled views!
Explicitly triggers the re-evaluation of the formula for this view (if a formula has been specified). If the view is not formula-enabled, recalculate() does nothing.
Example
Text1.recalculate(); //If the formula for Text1 is: new Date().toString(), Text1 is updated to the current date/time

removeMenuItem(index)

Get label placement for control
Name Type Description
index integer Index of item to remove
Set/update bound data associated this view/control. Only works for views/controls with bound data.
Name Type Description
value Object Value of bound data. The type of this parameter must match the type of the bound data.
Example
MyView.setData("TEST"); //Updates bound data to the string 'TEST'
Enable/disable this view/control
Name Type Description
enabled boolean Enabled/read-only flag (true to enable view, false to disable/make read-only)
required boolean Enable/disable required field flag for control
Example
MyView.setEnabled(false); //Make MyView read-only

setHorizontalAlignment(alignment)

Set the horizontal alignment of the menu. NOTE: to avoid ambiguity always set the size style using "L"|"R"
Name Type Description
alignment string "LEFT"|"L"=Left | "RIGHT"|"R"=Right

setLabel(label)

Set label for control
Name Type Description
label string Label to set

setLabelPlacement(placement)

Set label placement for control
Name Type Description
placement string "T","TOP"=Top | "L","LEFT"=Left
Show/hide the label of this view/control
Name Type Description
visible boolean Label visibility flag (true to show view label, false to hide)
Example
MyView.setLabelVisible(false);

setMenuItem(item, index)

Set menu item at specified index. If index is greater than the current max index, item will be added to the menu at the next index location. Otherwise the item at the specified index will be overwritten.
Name Type Description
item MenuItem Item to set in control
index integer Index at which to set menu item

setMenuItemBadgeText(text, index)

Set badge text for an item
Name Type Description
text string Badge text to set
index integer Index of item badge text is being set for

setMenuItemIcon(icon, index)

Set badge text for an item
Name Type Description
icon string visit http://fontawesome.io/icons/ for icon options
index integer Index of item icon is being set for

setMenuVisible(vis)

Set menu visibility. This is the only way to change the visibility of the menu. It will not pop up just by clicking on controls inside of it
Name Type Description
vis boolean Set to true to make the menu visible
Flag this view/control as valid or invalid
Name Type Description
valid boolean Valid/invalid flag (true to set view valid, false to make it invalid - which typically shows the view with "invalid" styling and indicator)
errorText string Validation error text to show on the invalid-styled view
Example
MyView.setValid(false, "Please fix your data entry"); //Make MyView invalid

setVerticalAlignment(alignment)

Set the vertical alignment of the menu. NOTE: to avoid ambiguity always set the size style using "T"|"B"
Name Type Description
alignment string "TOP"|"T"=Top | "BOTTOM"|"B"=Bottom
Show/hide this view/control
Name Type Description
visible boolean Visibility flag (true to show view, false to hide)
collapse boolean Set to true to collapse the control space when visible is set to false.
Examples
MyView.setVisible(false, false); //Equivalent to MyView.hide()
MyView.setVisible(false, true); // Sets visibility to "None"
Show this view/control
Example
MyView.show();
Broadcasts the expression trigger for the specified view
Name Type Default Description
phase int bpmext.ui.PHASE_NORMAL optional The phase we are currently in
Example
MyView.triggerFormulaUpdates();