Eclipse RCP教程 – 22 – 视图菜单(View Menu),弹出菜单(Popup Menu)和动态菜单(Dynamic Menu)

22.1. 视图菜单

你可以在部件中定义一个菜单作为视图菜单。请注意应用程序模型允许你为一个部件定义超过一个菜单,但是默认的Eclipse实现只支持一个。要添加一个视图菜单,请选择Part下面的Menus项,并为之添加一个ViewMenu项。

20170604_003

22.2. 弹出菜单(上下文菜单)

你也可以通过应用程序模型为SWT控件定义一个弹出菜单。要实现这个,请在包含SWT控件的部件中创建一个Popup Menu

20170604_004

这个弹出菜单还包含一些子项,比如,一个HandledMenuItem。

20170604_005

然后,这个弹出菜单就可以通过EMenuService服务指派给一个SWT控件,该服务可以通过依赖注入访问菜单。EMenuService这个类提供了registerContextMenu(control, id)方法来实现此目标。该方法的id参数必须是你的弹出菜单模型元素的ID属性。

下面的伪代码展示了该注册过程的一个样例。它采用了一个JFace视图器,因为弹出菜单需要被注册到一个SWT控件上,下面的样例代码展示了如何访问该控件。

如果你想要实现该样例,你的插件必须在MANIFEST.MF文件中定义了对org.eclipse.e4.ui.workbench.swtorg.eclipse.e4.ui.servicesorg.eclipse.e4.ui.model.workbench插件的依赖。

22.3. 动态菜单和工具栏子项

你也可以通过DynamicMenuContribution模型元素在运行时创建菜单和工具栏子项。

这个模型元素指向一个类,其中有个方法添加了注解@AboutToShow。这个方法会在用户选择用户界面元素时被调用。被注解了@AboutToHide的方法则会在菜单隐藏之前被调用。

在这些方法里面,你就可以动态的创建菜单项。

 

打赏一下
支付宝
微信
除非注明,博客文章均为原创,转载请标明文章地址
本文地址: http://www.javafxchina.net/blog/2017/06/eclipse-rcp-22/
百度已收录