Fabryki elementów

org.eclipse.ui.elementFactories

Ten punkt rozszerzenia umożliwia dodawanie fabryk elementów do środowiska roboczego. Fabryka elementów służy do odtwarzania obiektów IAdaptable, które są utrwalane podczas zamykania środowiska roboczego.

Na przykład fabryka elementów może być używana do utrwalenia danych wejściowych edytora. Dane wejściowe edytora muszą implementować klasę org.eclipse.ui.EditorInput. Na cykl życia interfejsu IEditorInput w obrębie edytora składa się kilka faz.

  1. Początkowe dane wejściowe edytora są przekazywane podczas jego tworzenia.
  2. Przy zamykaniu systemu przechwytywany jest stan środowiska roboczego. W procesie tym środowisko robocze tworzy obiekt memento dla każdego otwartego edytora i jego danych wejściowych. Dane wejściowe są zapisywane jako dwuczęściowy obiekt memento zawierający identyfikator fabryki oraz dane podstawowe niezbędne do odtworzenia elementu podczas uruchamiania systemu. Więcej informacji na ten temat można znaleźć w dokumentacji interfejsu org.eclipse.ui.IPersistableElement.
  3. Podczas uruchamiania odczytywany jest stan środowiska roboczego i odtwarzane są edytory z poprzedniej sesji. W procesie tym środowisko robocze odtwarza element danych wejściowych dla każdego otwartego edytora. W tym celu odwzorowuje oryginalny identyfikator fabryki odpowiadający elementowi danych wejściowych na konkretną klasę fabryki zdefiniowaną w rejestrze. Jeśli istnieje odwzorowanie i klasa fabryki jest poprawna, następuje utworzenie instancji klasy fabryki. Następnie środowisko robocze zleca fabryce odtworzenie oryginalnego elementu z pozostałych danych podstawowych znajdujących się w obiekcie memento. Otrzymany w ten sposób interfejs IAdaptable jest rzutowany na interfejs IEditorInput i przekazywany do nowego edytora.

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


Poniżej przedstawiono przykład rozszerzenia fabryki elementów:

   

<extension point =

"org.eclipse.ui.elementFactories"

>

<factory id =

"com.xyz.ElementFactory"

class=

"com.xyz.ElementFactory"

>

</factory>

</extension>

Wartość atrybutu class musi być pełną nazwą klasy implementującej interfejs org.eclipse.ui.IElementFactory. Instancja tej klasy musi utworzyć obiekt IAdaptable z obiektu memento środowiska roboczego.

W środowisku roboczym jest dostępna fabryka IResource. W celu odtworzenia innych typów IAdaptable występujących najczęściej w innych modelach obiektów, takich jak model Java, należy dodać kolejne fabryki.