エレメント・ファクトリー

org.eclipse.ui.elementFactories

この拡張ポイントは、エレメント・ファクトリーをワークベンチに追加するために使用されます。 エレメント・ファクトリーは、ワークベンチのシャットダウン中に永続化する IAdaptable オブジェクトを 再作成するために使用されます。

例えば、エレメント・ファクトリーを使用することによって、エディター入力を永続化します。 エディターの入力は、org.eclipse.ui.EditorInput を実装する必要があります。 エディター内の IEditorInput のライフ・サイクルには、いくつかのフェーズが存在します。

  1. エディターの作成中に、エディターの初期入力が渡されます。
  2. シャットダウン時には、ワークベンチの状態が取得されます。 このプロセスでは、ワークベンチは開いたエディターとその入力ごとに記録を作成します。 入力は、ファクトリー ID と起動時にエレメントを再作成するために必要な基本データを含む 2 パートの記録として保管されます。 詳しくは、org.eclipse.ui.IPersistableElement の記述を参照してください。
  3. 起動時には、ワークベンチの状態が読み取られ、直前のセッションの状態を持つエディターが再作成されます。 このプロセスで、ワークベンチは、開いたエディターごとに入力エレメントを再作成します。 これを行うには、入力エレメントのオリジナルのファクトリー ID が、 レジストリー内に実際に定義されているファクトリー・クラスにマップされます。 マッピングが存在し、ファクトリー・クラスが有効であれば、ファクトリー・クラスのインスタンスが作成されます。 さらにワークベンチは、ファクトリーに対し、記録内の残りの基本データからオリジナルのエレメントを再作成するよう指示します。 この結果の 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 を 実装するクラスの完全修飾名である必要があります。 このクラスのインスタンスは、ワークベンチの記録から IAdaptable オブジェクトを作成する必要があります。

ワークベンチには IResource ファクトリーが用意されています。 Java Model など、他のオブジェクト・モデル内に共通して見られる他の IAdaptable タイプを再作成するため、 ファクトリーがさらに用意されています。