元素 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 類型。