如何在按钮上创建上下文菜单或右键菜单

时间:2016-12-22 06:15:10

标签: eclipse-rcp

当我右键单击按钮时打开上下文菜单。我将如何做到这一点。我也尝试这个代码

MenuManager menuManager = new MenuManager();
Menu menu = menuManager.createContextMenu(btn.getText());

btn.getText().setMenu(menu);

getSite().registerContextMenu(menuManager, btn);

getSite().setSelectionProvider(btn);

我在createContextMenu中遇到了问题。请帮帮我

1 个答案:

答案 0 :(得分:2)

createContextMenu需要Control作为参数,您传递按钮文字StringsetMenu方法也属于Control。所以:

MenuManager menuManager = new MenuManager();
Menu menu = menuManager.createContextMenu(btn);

btn.setMenu(menu);

getSite().registerContextMenu(menuManager, btn);

Button未实现ISelectionProvider,因此如果您想将该按钮用作选择提供程序,则必须编写一个。

请注意,零件只能注册一个这样的上下文菜单,并且零件只能有一个选择提供者。

如果您希望将Eclipe其他部分的上下文菜单贡献添加到菜单中,您必须添加以下行:

menuManager.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));