Assign actions a menu group based on class
No edit summary
m ((username removed) (log details removed))
(No difference)

Revision as of 05:52, 19 June 2024

This page was created by Lars.olofsson@mdriven.net on 2024-05-01. Last edited by Edgar on 2025-01-20.

The scenario is that many classes based on a superclass have Class actions that should all have the same Menu Group.

This OCL will list all classes with a named superclass and list the class actions and their Menu Group:

Class.allInstances->select(c|c.AllSuperClassesAndSelf->includes(Class.allInstances->select(c|c.Name='PeWork')->first)).ClassActions->collect(ca|ca.Name, ca.MenuGroup.Name)

Replace 'PeWork' in the example above to the class or superclass you want to find.

The EAL code will update the Menu Group to a named one.

Class.allInstances->select(c|c.AllSuperClassesAndSelf->includes(Class.allInstances->select(c|c.Name='PeWork')->first)).ClassActions->forEach(ca|ca.MenuGroup := MenuGroup.allInstances->select(mg|mg.Name='PE')->first)

Replace 'PeWork' in the example above to the class or superclass you want to find and change 'PE' to the existing Menu Group you want to set.