“扩展”页面

“扩展”页面可用来浏览和编辑插件扩展。扩展是用来为平台添加行为的中央机制。除非您的插件是可供其它插件使用的简单 Java API 库, 否则,会将新行为作为扩展来添加。

插件为扩展点(由所需要的插件来定义)添加行为。扩展语法必须与扩展点定义相匹配,才能正确地进行处理。合格扩展点的总列表是由 PDE 通过遍历所有可视插件(工作区插件和外部插件)来计算的。

由 PDE 提供的一般扩展向导仅扫描扩展点。如果提供了扩展模式(参见扩展点模式), 则向导将从模式中抽取语法和扩展点元数据。

除了一般向导之外,还可以获得大量扩展模板。这些是可以用来生成插件项目的初始内容的相同模板。如果它们在此处存在,则允许您创建扩展。可以使用简单视图来创建插件,稍后再添加编辑器或向导。

示例:添加“操作集”扩展

为了说明“扩展”页面的操作,我们将向插件添加“Hello, PDE world”操作。我们将添加到 org.eclipse.ui.actionSets 扩展点。此示例假定您已经熟悉了扩展点。

首先,我们将按添加... 按钮来选择扩展向导:

扩展向导选择

基于模式的扩展向导是缺省值, 原因是它以最普通的方式来处理扩展。它将扫描插件, 并提供找到的所有带有模式或不带模式的扩展点。带有模式的扩展点将允许 PDE 提供更好的帮助。如果缺少扩展点模式,则 PDE 将允许您将元素和属性添加到扩展中, 但是,它将不能验证它们对于所选的扩展点是否有效。

当按下一步时,将提供扩展点的列表。选择 org.eclipse.ui.actionSets,并按完成

基于模式的向导 — 扩展点选择

向导将把新扩展添加到扩展列表中。由于此扩展具有与它相关联的模式,因此,我们可以进一步编辑扩展定义。选择新添加的扩展,并从弹出菜单中选择新建 -> 操作集。已经将此 XML 元素定义为可以在扩展定义中显示的唯一有效的元素。

对于所有必需的属性,PDE 都将为其创建缺省值。可以通过选择元素,并更改“属性”视图中的标号属性,将操作集的缺省名称更改为“Sample Action Set”。新名称将显示在扩展列表中。

扩展编辑器页面

现在,需要为操作集定义菜单和操作。如果选择操作集,并在“扩展元素子代”部分弹出“新建”菜单, 则该菜单将提供两个选项:菜单和操作。这些选项都是以操作集扩展的模式信息为基础的。首先,我们创建菜单。

  1. 选择新建 -> 菜单来创建菜单。  
  2. 选择它,并更改它的属性。将标识更改为“sampleMenu”,并将标号更改为“Sample Menu”。
  3. 在仍然选择了菜单的情况下,弹出菜单并选择新建 -> 分隔符。应该出现新的子代。
  4. 选择“分隔符”并将其名称更改为“sampleGroup”。这将在菜单中创建命名组,可以用来添加我们的操作。

可以按类似的方法创建操作:

  1. 选择新建 -> 操作来创建操作。  
  2. 选择它并更改它的属性。将它的标号更改为“&Sample Action”并将它的 menubarPath 更改为“sampleMenu/sampleGroup”。这样将把操作添加到刚定义的菜单中。

我们需要设置的最后一项就是操作的 Java 类。扩展点定义指定操作必须实现 IWorkbenchWindowActionDelegate。 PDE 可以提供帮助,原因是它从模式中知道此信息:

  1. 单击属性,以便使它进入编辑方式。选择按钮以打开单元编辑器对话框。
  2. 选择单选按钮来创建新类。
  3. 单击浏览按钮以选择源容器,并选择“XYZ 插件”。
  4. 将类的名称更改“SampleAction”。

在按完成之前,对话框应为如下所示:

Java 属性编辑器

当完成时,将根据必需的接口来生成新类(每种抽象方法都具有存根实现)。另外,针对类属性值设置新类的名称。缺省情况下,向导还将打开新的 Java 类以进行编辑。可以查找“运行”方法并添加下列语句:

      System.out.println("Hello, PDE world!");

保存新的源代码,并关闭 Java 编辑器。然后返回到清单编辑器的“扩展”页面,并进行保存。

当我们运行插件时,将继续此示例。

 
Copyright IBM Corporation and others 2000, 2003