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