在eclipse插件开发时,我们有时有这样的需求:我们要为view增加popupmeun,如果我们希望只有叶子节点相应Action,如图:
而非叶子节点或空行不响应Action,比如在图中不出现:
可以这样实现,重写org.eclipse.ui.actions.ActionGroup中的
fillContextMenu
(IMenuManager menu)方法,简化的代码:
public void fillContextMenu(final IMenuManager menu) {
final MenuManager menuManager = (MenuManager) menu;
menu.setRemoveAllWhenShown(true);
menu.addMenuListener(new IMenuListener(){
public void menuAboutToShow(IMenuManager manager) {
if(){
//if the select item is empty.do nothing }
else{
//if the select item isn't ScanPatternEntity,available
menuManager.add(new NewExpainAction());
}
}});
}