元素 Factory

org.eclipse.ui.elementFactories

這個延伸點用來在工作台中加入元素 Factory。元素 Factory 用來重新建立在工作台關閉期間持續存在的 IAdaptable 物件。

舉例來說,元素 Factory 係用來持續編輯器輸入。編輯器的輸入必須實作 org.eclipse.ui.EditorInput。編輯器內 IEditorInput 的生命週期具有若干階段。

  1. 在建立編輯器期間,會傳入編輯器的起始輸入。
  2. 在關閉時,會攫取工作台狀態。在這個程序中,工作台會為每個開啟的編輯器及其輸入建立一項 memento。 輸入會儲存成兩段式 memento,其中含有 Factory ID 及在啟動時重建元素所需要的初始資料。 如果需要詳細資訊,請參閱 org.eclipse.ui.IPersistableElement 的相關文件。
  3. 啟動時會讀取工作台狀態,且會重新建立前一階段作業的編輯器。在這個程序中,工作台會重建每個開啟的編輯器的輸入元素。 為了要做到這一點,它會將輸入元素的程式 Factory ID 對映至登錄中所定義的具體 Factory 類別。如果對映存在且 Factory 類別有效,就會建立 Factory 類別的實例。 之後,工作台會要求 Factory 從 memento 內剩餘的初始資料重建程式元素。結果 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>


下列是元素 Factory 延伸的範例:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

class 屬性值必須是實作 org.eclipse.ui.IElementFactory 的完整類別名稱。這個類別的實例必須從工作台 memento 建立一個 IAdaptable 物件。

工作台提供 IResource Factory。應該新增額外的 Factory 來重建通常會在其他物件模型(如 Java 模型)中找到的其他 IAdaptable 類型。