요소 팩토리

org.eclipse.ui.elementFactories

이 확장점은 요소 팩토리를 Workbench에 추가하는 데 사용됩니다. 요소 팩토리를 사용하여 Workbench 종료 중에도 지속되는 IAdaptable 오브젝트를 다시 작성합니다.

한 예제로서 요소 팩토리는 편집기 입력을 지속시키는 데 사용됩니다. 편집기의 입력은 org.eclipse.ui.EditorInput을 구현해야 합니다. 편집기 내의 IEditorInput 라이프 사이클에는 여러 단계가 있습니다.

  1. 편집기를 작성하는 중에 편집기의 초기 입력이 전달됩니다.
  2. 시스템 종료 시 Workbench 상태를 캡처합니다. 이 프로세스에서 Workbench는 열린 편집기와 해당 입력에 대한 메멘토를 작성합니다. 입력은 팩토리 ID와 시작 시 요소를 다시 작성하는 데 필요한 기본 데이터를 포함하는 두 부분의 메멘토로 저장됩니다. 자세한 정보는 org.eclipse.ui.IPersistableElement에 대한 문서를 참조하십시오.
  3. 시작할 때 Workbench 상태를 읽고 이전 세션의 편집기를 다시 작성합니다. 이 프로세스에서 Workbench는 각각 열린 편집기에 대한 입력 요소를 다시 작성합니다. 이를 위해 Workbench는 입력 요소의 원래 팩토리 ID를 레지스트리에 정의된 구체적인 팩토리 클래스로 맵핑합니다. 맵핑이 존재하면 팩토리 클래스는 올바른 것이며 팩토리 클래스의 인스턴스가 작성됩니다. 그런 다음 Workbench는 메멘토에 있는 나머지 원시 데이터에서 원래 요소를 다시 작성할지를 팩토리에게 질문합니다. 결과로 생긴 IAdaptableIEditorInput으로 캐스트되고 새로운 편집기로 전달됩니다.

<!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를 구현하는 클래스의 완전한 이름이어야 합니다. 이 클래스의 인스턴스에서 Workbench 메멘토의 IAdaptable 오브젝트를 작성해야 합니다.

Workbench에서는 IResource 팩토리를 제공합니다. Java 모델과 같은 다른 오브젝트 모델에 있는 다른 IAdaptable 유형을 다시 작성하려면 다른 팩토리를 추가해야 합니다.