Eclipse RCP教程 – 24 – 更多关于指令和处理器的信息

24.1.给指令传递参数

你可以传递参数给指令。要实现这一点,请选择一个指令,然后点击Parameters区域的Add按钮。

ID属性是一个标识,你可以使用它获取到参数值,而这个值通过@Named注解注入。

20170604_101

在你的HandledMenuItem或者HandledToolItem添加一个参数,并把前面指令中设置的ID属性设置到其Name属性中。而Value属性的值则会传递给指令的处理器。

20170604_102

20170530_008 参数的ID属性是非常重要的。ID属性必须通过@Name注解进行注入,然后在定义菜单或工具栏时用于其Name属性(第二个字段)。看下图高亮的内容。

20170604_103

为了获得在处理器类中被注入的参数值,你必须为ID属性指定@Name注解。参见下面的代码片段示例。

 20170319_004 你可以注入每一个参数,也可以注入ParameterizedCommand指令,并通过API来访问这些参数。

24.2. 核心表达式(core expression)的用法

菜单、工具栏及其子项的可见性可以通过核心表达式来控制。你可以为定义在plugin.xml文件中的org.eclipse.core.expressions.definitions扩展点所定义的ID属性添加对应的属性值到应用程序模型中。

要添加这个扩展点到你的应用程序中,打开plugin.xml文件,然后选择编辑器中的Dependencies标签页。在Required Plug-ins区域添加org.eclipse.core.expressions插件。

然后选择Extensions标签页,点击Add按钮,添加org.eclipse.core.expressions.definitions扩展,并定义一个ID用于在应用程序模型中被核心表达式所引用。

通过右键单击该扩展,你可以开始构建你的表达式。

下面的样例可以用于基于当前选中的类型来控制一个菜单项的可见性。你将在后面学习如何设置当前选中。请注意,选中的变量在当前版本叫做org.eclipse.ui.selection。而在Eclipse 3.x中,这个变量叫做selection。

你可以将这个核心表达式设置给你应用程序中的菜单项。它可以被用作控制模型元素的可见性。

20170604_104

 

20170604_105

这个实现与Eclipse 3.x中核心表达式的定义相似。

在Eclipse 3.x中可用的值包含在ISources接口中,可以参见Eclips核心表达式wiki。Eclipse 4不再支持所有的这些值,但是这个wiki文档依然有参考价值。

24.3. 在核心表达式中计算值

你可以将值放在应用程序的IEclipseContext中,用于计算是否可见。

下面的代码展示了一个处理器类样例,其中为myactivePartId键放置了一个值到上下文环境中(你将在后面学习更多关于修改IEclipseContext的内容)。

下面的代码展示了一个核心表达式样例,当变量myactivePartId的值com.example.e4.rcp.ui.parts.todooverview在上下文中能够被找到时,核心表达式为true。

这个核心表达式可以指定给一个菜单项,并控制其可见性。

20170604_106

 

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