public void createContexMenu(Composite parent) {
testAction = new Action("a") {
@Override
public void run() {
System.out.println("Context menu clicked!");
}
};
// 创建菜单管理工具类。
MenuManager mgr = new MenuManager();
// 清除原有菜单。
mgr.setRemoveAllWhenShown(true);
mgr.addMenuListener(new IMenuListener() {
@Override
public void menuAboutToShow(IMenuManager manager) {
manager.add(testAction);
}
});
Menu contextMenu = mgr.createContextMenu(parent);
// parent.setMenu(contextMenu);
_calendarGraph.setMenu(contextMenu);
// getSite().registerContextMenu(mgr, null);
}
代码解析:
MenuManager应该为菜单管理类,其作用类似工厂,设置菜单的各子菜单项,以及生成具体的菜单实例。
获取到菜单实例后,就可以将其设置到具体的空间上下文中。