gpt4 book ai didi

java - 我们如何为树查看器创建子上下文菜单

转载 作者:行者123 更新时间:2023-12-01 12:09:17 25 4
gpt4 key购买 nike

我已经使用右键单击鼠标为树查看器创建了一个上下文菜单,现在我需要为其创建一个子上下文菜单,以便我需要为其设置值。创建上下文菜单的代码如下.

protected void createContextMenu(Viewer viewer) {
MenuManager contextMenu = new MenuManager("#ViewerMenu"); //$NON-NLS-1$
contextMenu.setRemoveAllWhenShown(true);
contextMenu.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager mgr) {
fillContextMenu(mgr);
}
});

Menu menu = contextMenu.createContextMenu(viewer.getControl());
viewer.getControl().setMenu(menu);
}

/**
* Fill dynamic context menu
*
* @param contextMenu
*/

protected void fillContextMenu(IMenuManager contextMenu) {
//String nnn = null;
//contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
//contextMenu.add(new GroupMarker(nnn));

contextMenu.add(new Action("set Iterations") {
@Override
public void run() {
// implement this
}


});

contextMenu.add(new Action("Set timeout") {
@Override
public void run() {
// implement this
}


});
}

所以现在对于上下文菜单设置超时,我需要创建子上下文菜单,用户可以在其中设置超时值。那么如何做到这一点。

最佳答案

为子菜单创建菜单MenuManager:

protected void fillContextMenu(IMenuManager contextMenu) {
//String nnn = null;
//contextMenu.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
//contextMenu.add(new GroupMarker(nnn));

contextMenu.add(new Action("set Iterations") {
@Override
public void run() {
// implement this
}
});

contextMenu.add(new Action("Set timeout") {
@Override
public void run() {
// implement this
}
});

IMenuManager submenu = new MenuManager("Sub menu title");

submenu.add(new Action("Sub menu item 1") {
@Override
public void run() {
// implement this
}
});

contextMenu.add(submenu);
}

关于java - 我们如何为树查看器创建子上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27356012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com