Introducing MenuState to replace UIvbs

<< Click to Display Table of Contents >>

Navigation:  SP 0.0 > Enhancements > RMB MenuState >

Introducing MenuState to replace UIvbs

Starting from R26, a new mechanism has been introduced for managing the enable/disable state of custom RMB menu entries.

A new script named MenuState must be placed in the root folder of each type (AnyType, A, P, G, 0). The script should be named as follows:

 

AnyType → MenuState

P → MenuStateP

A → MenuStateA

D → MenuStateD

G → MenuStateG

0 → MenuState0

 

This script can be implemented in any of the supported languages (.vbs, .ps1, .py, .mwnet). Only one script per type is executed, regardless of the scripting language used. The script must output a list of keys in the form:

 

@SCRIPT_ENABLED=Create_drawing,1

@SCRIPT_ENABLED=ViewExcelPage,0

 

where the first part indicates the script name and the trailing value specifies whether the menu entry is enabled (1) or disabled (0). This behavior applies to all subfolders of the given type.

The advantage is that a single controlling script is executed instead of one per menu entry (UIvbs), significantly improving performance.

 

The MenuState mechanism has been extended to also support the following customization contexts.

 

1. Custom Menu Entries for Previous Revisions

 

The folder named AnyTypeRevisions is managed by MechWorks PDM and allows a generic script to be listed and executed through the Previous Revisions grid RMB popup menu available in the Tree Page.

 

It is now possible to control the enable/disable state of these scripts by adding a corresponding MenuStateAnyTypeRevisions script in the same folder.

 

Example:

 

LST\AnyTypeRevisions\MenuStateAnyTypeRevisions.ps1

 

This script can be implemented in any supported language and is executed once to determine the state of all the RMB entries in that folder.

 

2. Custom Query Grids Popup Menus

 

If custom query grids have been defined using the LST\OnCustomQueryTab_TabName.LST mechanism, it is possible to display an RMB Popup Menu when right-clicking a row in the corresponding Custom Query Grid.

 

Such popup menus are defined in the following structure:

LST\CustomQueryTabMenus\<TabName>\

and contain the scripts to be displayed as menu entries.

 

It is now possible to place a MenuState script named as follows:

LST\CustomQueryTabMenus\<TabName>\MenuState<TabName>.xxx

 

Example:

LST\CustomQueryTabMenus\MyCustomTab\MenuStateMyCustomTab.ps1

 

This script can be implemented in any supported language and is executed once to determine the state of all the RMB entries in that folder.

 

Note: We suggest implementing these scripts in MWNET whenever possible, since compiled .NET execution is expected to be the most efficient.

 

Deprecation of UIvbs

 

The previous UIvbs mechanism for enabling/disabling menu entries is now deprecated. The new MenuState approach provides faster execution and unified handling, even when using VBScript.