Factory degli elementi

org.eclipse.ui.elementFactories

Questo punto di estensione viene utilizzato per aggiungere factory di elementi nel workbench. Un factory di elementi è utilizzato per ricreare gli oggetti IAdaptable che vengono mantenuti alla chiusura del workbench.

Ad esempio, il factory degli elementi è utilizzato per gli input di editor persistenti. L'input dell'editor deve implementare org.eclipse.ui.EditorInput. Il ciclo di vita di IEditorInput nell'editor presenta un numero di fasi.

  1. L'input iniziale per un editor viene trasmesso durante la creazione dello stesso.
  2. Alla chiusura del workbench viene catturato lo stato. In questo processo il workbench creerà un promemoria per ciascun editor aperto ed il relativo input. L'input viene salvato come un promemoria in due parti, che contiene un ID factory ed i dati primitivi richiesti per ricreare l'elemento all'avvio. Per ulteriori informazioni, fare riferimento alla documentazione di org.eclipse.ui.IPersistableElement.
  3. All'avvio viene letto lo stato del workbench e gli editor sono ricreati dalle sessioni precedenti. In questo processo il workbench creerà un elemento di input per ciascun editor aperto. Per eseguire questa operazione, assocerà l'ID factory originale per l'elemento di input alla classe factory concreta definita nel registro. Se esiste una associazione, e la classe factory è valida, verrà creata un'istanza della classe factory. Quindi il workbench chiederà al factory di ricreare l'elemento originale dagli altri dati primitivi del promemoria. L'oggetto IAdaptable ottenuto messo in cast con IEditorInput e passato ad un nuovo editor.

<!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>


Di seguito è riportato un esempio di estensione per un factory di elementi:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

il valore dell'attributo class deve costituire un nome completo che implementa org.eclipse.ui.IElementFactory. Un'istanza di questa classe deve creare un oggetto IAdaptable da un promemoria del workbench.

Il workbench fornisce il factory IResource. Ulteriori factory sono necessari per ricreare altri tipi IAdaptable comunemente trovati in altri modelli di oggetti, come il modello Java.