0
我想按照字母順序在eclipse rcp中創建下拉菜單,這些下拉菜單需要按照字母排列。如何在eclipse rcp中根據字母動態創建下拉菜單
這樣在主菜單下我想顯示字母。如果有任何與字母表有關的貢獻,那麼我必須在該字母表下創建一個下拉菜單。
// Use case
Menu
A -> Action,
B -> Bind,
C -> Click
請看看進入連接的用例圖
我想按照字母順序在eclipse rcp中創建下拉菜單,這些下拉菜單需要按照字母排列。如何在eclipse rcp中根據字母動態創建下拉菜單
這樣在主菜單下我想顯示字母。如果有任何與字母表有關的貢獻,那麼我必須在該字母表下創建一個下拉菜單。
// Use case
Menu
A -> Action,
B -> Bind,
C -> Click
請看看進入連接的用例圖
如果你在E4,在Application.e4xmi
模型,動態菜單添加到"Menu"
一個"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>
}
}
看看'org.eclipse.ui.menus'擴展點的'dynamic'元素 - [see here](https://wiki.eclipse.org/Menu_Contributions/Populating_a_dynamic_submenu) –