Assign actions a menu group based on class
(Adding message template to the top of the page)
m ((username removed) (log details removed))
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{message|Write the content here to display this box}}
<message>Write the content here to display this box</message>
The scenario is that many classes based on a superclass have Class actions that should all have the same Menu Group.
The scenario is that many classes based on a superclass have Class actions that should all have the same Menu Group.


Line 9: Line 9:
  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)
  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.
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.
[[Category:Actions]]
[[Category:OCL]]
[[Category:EAL]]

Latest revision as of 05:52, 19 June 2024

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.

This page was edited 13 days ago on 06/19/2024. What links here