我想按字母顺序在eclipse rcp中创建下拉菜单,这些下拉菜单需要按照字母排列。
这样在主菜单下我想要显示字母。如果有任何与字母相关的贡献,那么我必须在该字母表下创建一个下拉菜单。
// Use case
Menu
A -> Action,
B -> Bind,
C -> Click
请查看随附的用例图
答案 0 :(得分:0)
如果您在e4中,在Application.e4xmi
模型中添加"Menu"
a "Dynamic Menu Contribution"
将此动态菜单链接到将构建菜单的类:
public class DynamicMenuContributor {
@Inject
private EModelService modelService;
@AboutToShow
public void aboutToShow(List<MMenuElement> items) {
for (String s : <your collection of letters>) {
MDirectMenuItem dynamicItem = modelService.createModelElement(MDirectMenuItem.class);
dynamicItem.setLabel(s);
dynamicItem.setContributorURI(<contributor uri>);
dynamicItem.setContributionURI(<point the class that will handle the menu event>);
// dynamicItem.setType(ItemType.RADIO);
// dynamicItem.setSelected(selected);
// dynamicItem.setIconURI(<url to icon>);
// dynamicItem.getTransientData().put(<param1 name>, <param1 value>);
// dynamicItem.getTransientData().put(<param2 name>, <param2value>);
items.add(dynamicItem);
}
}
}
使用类来处理这样的事件:
public class DynamicMenuSelectiontHandler {
@Execute
public void execute(MMenuItem menuItem) {
<param1> = menuItem.getTransientData().get(<param 1 name>);
<param2> = menuItem.getTransientData().get(<param 2 name>);
<put your logic here>
}
}