Java 如何为treeviewer动态生成子菜单上下文
我已经为treeviewer填充了一个上下文菜单,但是现在我需要动态填充treeviewer的子菜单上下文。子上下文菜单应该包含列表中的所有内容。例如,列表包含[a、b、c、d、e],所以现在主菜单有菜单a,子菜单必须包含列表中的所有元素。这可以做到吗 菜单结构应如下所示 A->A B C D e 现在上下文菜单的代码如下Java 如何为treeviewer动态生成子菜单上下文,java,contextmenu,e4,treeviewer,Java,Contextmenu,E4,Treeviewer,我已经为treeviewer填充了一个上下文菜单,但是现在我需要动态填充treeviewer的子菜单上下文。子上下文菜单应该包含列表中的所有内容。例如,列表包含[a、b、c、d、e],所以现在主菜单有菜单a,子菜单必须包含列表中的所有元素。这可以做到吗 菜单结构应如下所示 A->A B C D e 现在上下文菜单的代码如下 protected void fillContextMenu(final IMenuManager contextMenu) { //String nnn =
protected void fillContextMenu(final IMenuManager contextMenu) {
//String nnn = null;
//contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
//contextMenu.add(new GroupMarker(nnn));
IMenuManager submenu = new MenuManager("Add Test Case");
submenu.add(new Action("Sub menu item 1") {
@Override
public void run() {
// implement this
}
});
contextMenu.add(submenu);
contextMenu.add(new Action("Add Test step") {
@Override
public void run() {
// don't do anything here
}
});
contextMenu.add(new Action("Add New Test Case") {
@Override
public void run() {
// implement this
}
});
}
现在我们如何生成列表中包含的动态子上下文菜单。首先确保
IMenuManager.setRemoveAllWhenShown(true);
在创建关联菜单时调用。这意味着每次显示菜单时都会调用fillContextMenu
然后,您只需在列表中循环,为fillContextMenu
中的列表中的每个项目创建操作:
List<String> itemList = .... your list
for (String item : itemList)
{
submenu.add(new Action(item) {
@Override
public void run() {
// implement this
}
});
}
List itemList=。。。。你的名单
用于(字符串项:itemList)
{
子菜单.添加(新操作(项目){
@凌驾
公开募捐{
//实施这个
}
});
}
当我按下子菜单中的任何按钮时,如何获取所按下子菜单的名称请不要在评论中提出新问题