给editor加右键菜单

我这里介绍两种方法
1:
在initializeGraphicalViewer方法中添加如下代码:
MenuManager menuManager = new MenuManager();
menuManager.add(new Action("创建") {
@Override
public void run() {

CreateNetunitDialog create = new CreateNetunitDialog();

create.open();

}
});
menuManager.add(new Action("修改") {


@Override
public void run() {

// System.out.println(tree.getSelection()[0].getText());
//
// if("".equals(tree.getSelection()[0].getText())){
//
// MessageDialog.openInformation(null, "提示", "请选择网元IP地址进行修改");
// return;
//
// }



}
});
menuManager.add(new Action("删除") {
@Override
public void run() {
handle.toWrite("正在删除网元...");
MessageDialog dialog = new MessageDialog(null, "提示", null, "确定删除吗?",
MessageDialog.QUESTION, new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.CANCEL_LABEL }, 0);

int result = dialog.open();

switch(result){

case 0: //yes

HandleXML hand = new HandleXML();

Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
NetNodeEntity node = (NetNodeEntity) o;

int i = hand.toDelete(node.getIP());

if(0 == i){

SendMessage send = new SendMessage();

send.write("删除网元"+node.getIP() +"成功");
Display.getDefault().syncExec(new Runnable()
{
public void run()
{
DeviceTreeViewer viewPart = (DeviceTreeViewer) PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().findView(DeviceTreeViewer.ID);;

TreeViewer viewer = viewPart.getTreeViewer();

viewer.setInput(NodeFactory.createInputData());
}
});
handle.toWrite("删除网元成功");
view.getTableViewer().setInput(LogDateFactory.createTableData());
MessageDialog.openInformation(null, "提示", "删除成功!");

}
//
// case 1: //no

// break;

case 1: //cancel
handle.toWrite("取消删除网元");
view.getTableViewer().setInput(LogDateFactory.createTableData());
break;

default: break;

}

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

2:
新建CbmEditorContextMenuProvider 类继承ContextMenuProvider 内容如下:
public class CbmEditorContextMenuProvider extends ContextMenuProvider {

private ActionRegistry actionRegistry;
private ActionRegistry getActionRegistry() {
return actionRegistry;
}
public void setActionRegistry(ActionRegistry registry) {
actionRegistry = registry;
}

public CbmEditorContextMenuProvider(EditPartViewer viewer, ActionRegistry registry) {
super(viewer);
actionRegistry = registry;
}
public void buildContextMenu(IMenuManager menu) {
// Add standard action groups to the menu
GEFActionConstants.addStandardActionGroups(menu);
// Add actions to the menu
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
menu.appendToGroup(GEFActionConstants.GROUP_UNDO,getActionRegistry().getAction(GEFActionConstants.REDO));
}

}
然后在configureGraphicalViewer方法中添加如下代码:
//添加上下文菜单
ContextMenuProvider provider =
new CbmEditorContextMenuProvider(getGraphicalViewer(), getActionRegistry());
getGraphicalViewer().setContextMenu(provider);
getSite().registerContextMenu(
"gef.examples.shapes.editor.contextmenu", //$NON-NLS-1$
provider,
getGraphicalViewer());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值