元素工厂

org.eclipse.ui.elementFactories

此扩展点用来将元素工厂添加至工作台。元素工厂用来重新创建在工作台关闭期间持久保存的 IAdaptable 对象。

作为示例,元素工厂用来持久保存编辑器输入。编辑器的输入必须实现 org.eclipse.ui.EditorInput。编辑器内的 IEditorInput 的生命周期具有许多阶段。

  1. 编辑器的初始输入是在编辑器创建期间传递来的。
  2. 关机时将捕获工作台状态。在此过程中,工作台将为每个打开的编辑器及其输入创建备忘录。输入被保存为一个具有两个部分的备忘录,该备忘录包含工厂标识和任何在启动时重新创建元素所必需的原始数据。有关更多信息,请参阅有关 org.eclipse.ui.IPersistableElement 的文档。
  3. 启动时,将读取工作台状态,并且将重新创建前一会话中的编辑器。在此过程中,工作台将为每个打开的编辑器重新创建输入元素。为此,它将把输入元素的原始工厂标识映射至在注册表中定义的具体工厂类。如果映射存在,并且工厂类是有效的,则会创建该工厂类的实例。然后,工作台将要求工厂从备忘录中的其余原语数据重新创建原始元素。获得的 IAdaptable 被强制类型转换为 IEditorInput 并且传递至新的编辑器。

<!ELEMENT extension (factory*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT factory EMPTY>

<!ATTLIST factory

id    CDATA #REQUIRED

class CDATA #REQUIRED>


以下是元素工厂扩展的一个示例:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

class 属性的值必须是用来实现 org.eclipse.ui.IElementFactory 的类的标准名称。此类的实例必须根据工作台备忘录创建 IAdaptable 对象。

工作台提供了 IResource 工厂。应添加其它工厂以重新创建在其它对象模型(例如,Java 模型)中常见的其它 IAdaptable 类型。