Pop-up menu
Adds a pop-up menu to other views. You can pin it to a menu item when the menu item is clicked or when the view loses the focus.

null
Menu items: Items in the menu. MenuItemSpec[]

Appearance
Show label: Show the view's label. Boolean
Label placement: The location of the label relative to the rest of the view.
{Top | Left}
LabelPlacement
Label width: The width of the label in px, % or em.\r\nFor example\: 50px, 20%, 0.4em. If no unit is specified, px is assumed. String
Horizontal alignment: The horizontal alignment of the menu relative to the contained view.
{Left | Right | Auto}
MenuHorizontalAlignment
Vertical position: The menu position relative to the contained view.
{Bottom | Top | Auto}
MenuVerticalAlignment
Drop shadow: Add a shadow to the menu frame. Boolean
Width: Width of "envelope" wrapping the contained view/element. String

Behavior
Pin menu: Prevents the menu from auto closing when a menu item is clicked or when the menu is no longer in focus. Boolean

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}
On Show:
Description: Triggers when the popup menu is shown.
Context Variables
On Close:
Description: Triggers when the popup menu is hidden.
Context Variables
Extends:
com.ibm.bpm.coach.CoachView
Methods:

Inherited addClass(name, [replaced])
Add/replace CSS class(es) for this control
NameTypeDefaultDescription
name{string}CSS class name(s) to add to the control. Separate class names by a space if more than one class.
replaced{string}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

}
NameTypeDefaultDescription
item{MenuItem}Item to set in control (see method description for object structure)

Inherited getData() Returns: {Object}
Retrieve bound data associated this view/control. Only works for views/controls with bound data.
Example
var dec1 = MyDecimal.getData();

getLabel() Returns: {string}
Get label associated with control

getLabelPlacement() Returns: {string}
Get label placement for control

getLabelWidth() Returns: {string}
Get label width of PopupMenu control (e.g. 50px, 20%, 2em - omitting the unit assumes px)

getMenuItem(index) Returns: {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

}
Get menu item at specified index.
NameTypeDefaultDescription
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

getMenuItemCount() Returns: {integer}
Get number of items in menu

getMenuItemIndex(when)
Get the index of the specified menu item or -1 if the menuItem cannot be located.
NameTypeDefaultDescription
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

getMenuItems() Returns: {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

}
null

getType() Returns: {string}
Get descriptive string representing the type of control

Inherited hide(collapseFlag)
Hide this view/control
NameTypeDefaultDescription
collapseFlag{boolean}Set to true to collapse the view (equivalent to a view setting of "NONE")
Example
MyView.hide();

Inherited isBound() Returns: {boolean}
Indicates bound status of control.

Inherited isEnabled() Returns: {boolean}
Checks if the view is enabled or not
Example
var enabled = MyView.isEnabled();

Inherited isLabelVisible() Returns: {boolean}
Checks if control label is visible
Example
var labelVisible = MyView.isLabelVisible();

isMenuVisible() Returns: {boolean}
Get the visibility of the menu

Inherited isValid() Returns: {boolean}
Returns the valid status as last set by the setValid() method.
Example
var valid = MyView.isValid();

Inherited isVisible() Returns: {boolean}
Checks whether or not view is visible
Example
var visible = MyView.isVisible();

Inherited propagateUpValueChange(event) Returns: {boolean}
Propagates value change of control up through parent views
NameTypeDefaultDescription
event{Event}Value change event (usually an onchange event)
Example
MyView.propagateUp(event);

Inherited recalculate()
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

removeAllMenuItems()
Removes all menu items

removeMenuItem(index)
Remove menu item at specified index
NameTypeDefaultDescription
index{integer}Index of item to remove

Inherited setEnabled(enabled, required)
Enable/disable this view/control
NameTypeDefaultDescription
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"
NameTypeDefaultDescription
alignment{string}"LEFT"|"L"=Left | "RIGHT"|"R"=Right

setLabel(label)
Set label for control
NameTypeDefaultDescription
label{string}Label to set

setLabelPlacement(placement)
Set label placement for control
NameTypeDefaultDescription
placement{string}"T","TOP"=Top | "L","LEFT"=Left

Inherited setLabelVisible(visible)
Show/hide the label of this view/control
NameTypeDefaultDescription
visible{boolean}Label visibility flag (true to show view label, false to hide)
Example
MyView.setLabelVisible(false);

setLabelWidth(labelWidth)
Set label width of PopupMenu control (e.g. 50px, 20%, 2em - omitting the unit assumes px)
NameTypeDefaultDescription
labelWidth{string}Control's label width

setMenuItem(items)
Set menu items to display in the popup menu
NameTypeDefaultDescription
items{MenuItem[]}Items to set in control

setMenuItemBadgeText(text, index)
Set badge text for an item
NameTypeDefaultDescription
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
NameTypeDefaultDescription
icon{string}See {@link http://fontawesome.io/icons Font Awesome} for a comprehensive list of icons. Refer to the knowledge center for the latest Font Awesome version.
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
NameTypeDefaultDescription
vis{boolean}Set to true to make the menu visible

setTargetElement(element)
Aligns the popup menu relative to the specified DOM element
NameTypeDefaultDescription
element{object}The DOM element relative to which the popup menu should open

Inherited setValid(valid, errorText)
Flag this view/control as valid or invalid
NameTypeDefaultDescription
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"
NameTypeDefaultDescription
alignment{string}"TOP"|"T"=Top | "BOTTOM"|"B"=Bottom

Inherited setViewData(data, createPseudoBinding)
Set/update bound data associated this view/control. Only works for views/controls with bound data.

Note: Should only be used with simple type bindings, or complex type bindings with simple type properties.
Should not be used with bindings that have properties that are lists or compext types. For complex types, set bindings using
the binding.set pattern detailed in the Knowlege Center section Binding Data and Configuration Options
NameTypeDefaultDescription
data{Object}Value of bound data. The type of this parameter must match the type of the bound data.
createPseudoBinding{boolean}If set to true, creates a pseudo binding if there is no current binding.
Example
MyView.setViewData("TEST"); //Updates bound data to the string 'TEST'

Inherited setVisible(visible, collapse)
Show/hide this view/control
NameTypeDefaultDescription
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"

Inherited show()
Show this view/control
Example
MyView.show();

Inherited triggerFormulaUpdates([phase])
Broadcasts the expression trigger for the specified view
NameTypeDefaultDescription
phase{int}bpmext.ui.PHASE_NORMALThe phase we are currently in
Example
MyView.triggerFormulaUpdates();