Фабрики элементов

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. Для восстановления других типов IAdaptable, обычно имеющихся в других моделях объектов, например, модели Java, следует добавить дополнительные фабрики.