插件开发,为某个视图贡献右键菜单

废话不说。直接看如何操作。
以大家熟悉的Package Explore视图为例。
step1:
新建一个org.eclipse.ui.popupMenus扩展点,在其下建立一个viewerContribution,
id任意(注意保持唯一,不要和工作台和自己的viewerContribution重复),
targetID设置为"org.eclipse.jdt.ui.PackageExplorer","org.eclipse.jdt.ui.PackageExplorer"就是
Package Explore视图的id,注意这里填的实际上是注册到PartSite上的ContextMenu的id(后面的博文会对此进行专门的描述)。

关于targetID:表示视图或编辑器内上下文菜单的唯一标志

step2:在刚才新建的viewerContribution下面创建一个Action。
id任意(取名原则和step1一致,勿重复),
label设置为"Hello,Package Explorer View!"。
重要的是menubarPath,menubarPath需要填入占位符(insert point)。
此时,我们应该去看看Package Explore View的占位符结构。
看源代码去吧。
经过一些查看,发现其占位符是在org.eclipse.jdt.internal.ui.JavaPlugin类中进行创建的,如下:
public static void createStandardGroups(IMenuManager menu) {
  if (!menu.isEmpty())
   return;
   
  menu.add(new Separator(IContextMenuConstants.GROUP_NEW));
  menu.add(new GroupMarker(IContextMenuConstants.GROUP_GOTO));
  menu.add(new Separator(IContextMenuConstants.GROUP_OPEN));
  menu.add(new GroupMarker(IContextMenuConstants.GROUP_SHOW));
  menu.add(new Separator(ICommonMenuConstants.GROUP_EDIT));
  menu.add(new Separator(IContextMenuConstants.GROUP_REORGANIZE));
  menu.add(new Separator(IContextMenuConstants.GROUP_GENERATE));
  menu.add(new Separator(IContextMenuConstants.GROUP_SEARCH));
  menu.add(new Separator(IContextMenuConstants.GROUP_BUILD));
  menu.add(new Separator(IContextMenuConstants.GROUP_ADDITIONS));
  menu.add(new Separator(IContextMenuConstants.GROUP_VIEWER_SETUP));
  menu.add(new Separator(IContextMenuConstants.GROUP_PROPERTIES));
 }
 
 好的。我们随便放一个位置吧。放在此占位符下newSeparator(IContextMenuConstants.GROUP_OPEN)。
 需要看一下GROUP_OPEN的id值是多少(为“group.open”)。
那么就在menubarPath上填充"group.open"。
运行。我们的菜单"Hello,Package Explorer View!" 已填充至Package Explore View上了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值