e4 RCP 如何以编程方式编辑主菜单

e4 RCP how to programmatically edit main menu

我想在我的代码中修改主菜单项,而不是在 e4xmi 中。我该怎么做?

我在主菜单中有两个 "handled menu item" 类型 "radio"(部分菜单中没有)。我想检查哪个是活动的。我还想以编程方式更改活动项目。

MMenuItem代表一个菜单项。它有 isSelected()setSelection(boolean) 方法来测试和设置菜单项选择。

您可以使用模型服务找到 MMenuItem

@Inject
EModelService modelService;

@Inject
MApplication app;

List<MMenuItem> menuList = modelService.findElements(app, "menu item id", MMenuItem.class, null, EModelService.IN_MAIN_MENU);

MMenuItem menuItem = menuList.get(0);

在处理程序中,您可以直接在 @Execute 方法中注入当前 MMenuItem