“扩展”页面可用来浏览和编辑插件扩展。扩展是用来为平台添加行为的中央机制。除非您的插件是可供其他插件使用的简单 Java API 库, 否则,会将新行为作为扩展来添加。
插件为扩展点(由所需要的插件来定义)添加行为。扩展语法必须与扩展点定义相匹配,才能正确地进行处理。合格扩展点的总列表是由 PDE 通过遍历所有可视插件(工作区插件和外部插件)来计算的。
由 PDE 提供的类属扩展向导仅扫描扩展点。如果提供了扩展模式(参见扩展点模式), 则向导将从模式中抽取语法和扩展点元数据。
为了说明“扩展”页面的操作,我们将向插件添加“Hello, PDE world”操作。我们将添加到 org.eclipse.ui.actionSets 扩展点。此示例假定您已经熟悉了扩展点。
首先,我们将按新建按钮来选择扩展向导:
基于模式的扩展向导是缺省值, 原因是它以最普通的方式来处理扩展。它将扫描插件, 并提供找到的所有带有模式或不带模式的扩展点。带有模式的扩展点将允许 PDE 提供更好的帮助。如果缺少扩展点模式,则 PDE 将允许您将元素和属性添加到扩展中, 但是,它将不能验证它们对于所选的扩展点是否有效。
当按下一步时,将提供扩展点的列表。选择操作集,并按完成。
向导将把新扩展添加到扩展列表中。由于此扩展具有与它相关联的模式,因此,我们可以进一步编辑扩展定义。选择新添加的扩展,并从弹出菜单中选择新建 -> 操作集。已经将此 XML 元素定义为可以在扩展定义中显示的唯一有效的元素。
对于所有必需的属性,PDE 都将为其创建缺省值。可以通过选择元素,并更改“特性”视图中的标号特性, 将操作集的缺省名称更改为“样本操作集”。新名称将显示在扩展列表中。
现在,需要为操作集定义菜单和操作。如果选择操作集,并在“扩展元素子代”部分弹出“新建”菜单, 则该菜单将提供两个选项:菜单和操作。这些选项都是以操作集扩展的模式信息为基础的。首先,我们创建菜单。
选择新建 -> 菜单以创建菜单。
选择它,并更改它的特性。将标识更改为“sampleMenu”,并将它的标号更改为“sampleMenu”。
在仍然选择了菜单对象的情况下,弹出菜单, 并选择新建 -> 分隔符。应该出现新的子代。
选择“分隔符”,并将它的名称更改为“sampleGroup”。这将在菜单中创建命名组,可以用来添加我们的操作。
可以按类似的方法创建操作:
选择新建 -> 操作以创建操作。
选择它并更改它的特性。将它的标号更改为“样本操作”, 并将它的 menubarPath 更改为“sampleMenu/sampleGroup”。这样将把操作添加到刚定义的菜单中。
我们需要设置的最后一项就是操作的 Java 类。扩展点定义指定操作必须实现 IWorkbenchWindowActionDelegate。 PDE 可以提供帮助,原因是它从模式中知道此信息:
单击类特性,以便让它进入编辑方式。选择按钮以打开单元格编辑器对话框。
选择单选按钮来创建新类。
单击浏览按钮,以选择源容器并选择“XYZ 插件”。
将类的名称更改为“SampleAction”。
在按完成之前,对话框应为如下所示:
当完成时,将根据必需的接口来生成新类(每种 abstract 方法都具有存根实现)。另外,针对类特性值设置新类的名称。缺省情况下,向导还将打开新的 Java 类以进行编辑。可以查找“运行”方法并添加下列语句:
System.out.println("Hello, PDE world!");
保存新的源代码,并关闭 Java 编辑器。然后返回到清单编辑器的“扩展”页面,并进行保存。
当我们运行插件时,将继续此示例。