内部エディターおよび外部エディター

org.eclipse.ui.editors

この拡張ポイントは、新規のエディターをワークベンチに追加するために使用されます。 エディターは、ワークベンチ・ページ内の ビジュアル・コンポーネントです。 エディターは通常、文書や入力オブジェクトの編集またはブラウズに使用されます。 エディターを開くには、一般的に IFile で "Open" を起動します。 このアクションが実行されると、ワークベンチのレジストリーが照会され、そのファイル・タイプに該当するエディターが判別され、 そのエディター・タイプの新しいインスタンスが作成されます。 実際の結果は、エディターのタイプによって異なります。 ワークベンチには、そのワークベンチと密接に統合された内部エディター、および個別のフレーム・ウィンドウで 起動される外部エディターの作成がサポートされています。 これら両者間には、各種レベルの統合も存在します。

内部エディターにおいては、ワークベンチ・ウィンドウとエディター・パーツ間で密接な統合関係が実現されます。 ワークベンチのメニューおよびツールバーには、「切り取り」、「コピー」、「貼り付け」のような いくつかの共通アクションがあらかじめ用意されています。 アクティブなパーツ (ビューまたはエディター) には、これらのアクションの実装が用意されているはずです。 また内部エディターは、ワークベンチ・ウィンドウに現れる新規アクションを定義することができます。 これらのアクションは、エディターがアクティブである場合にのみ現れます。

ワークベンチと外部エディターとの間の統合は、それほど密接ではありません。 この場合、ワークベンチは、エディターを起動することはありますが、その後、外部エディターの状態を判別、 または何らかの方法によって (ファイル・システムによる場合は除く) 共同作業を行うことはありません。

<!ELEMENT extension (editor*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT editor (contentTypeBinding*)>

<!ATTLIST editor

id               CDATA #REQUIRED

name             CDATA #REQUIRED

icon             CDATA #IMPLIED

extensions       CDATA #IMPLIED

class            CDATA #IMPLIED

command          CDATA #IMPLIED

launcher         CDATA #IMPLIED

contributorClass CDATA #IMPLIED

default          (true | false) "false"

filenames        CDATA #IMPLIED

symbolicFontName CDATA #IMPLIED

matchingStrategy CDATA #IMPLIED>


<!ELEMENT contentTypeBinding EMPTY>

<!ATTLIST contentTypeBinding

contentTypeId CDATA #REQUIRED>

収容エディターでは指定のコンテンツ型が識別され、その型のファイルが適切に編集されることを通知します。



内部エディター拡張定義の例を以下に示します。

   

<extension point=

"org.eclipse.ui.editors"

>

<editor id=

"com.xyz.XMLEditor"

name=

"Fancy XYZ XML editor"

icon=

"./icons/XMLEditor.gif"

extensions=

"xml"

class=

"com.xyz.XMLEditor"

contributorClass=

"com.xyz.XMLEditorContributor"

symbolicFontName=

"org.eclipse.jface.textfont"

default=

"false"

>

</editor>

</extension>

command 属性を使用した場合、これは、プラットフォームに依存した方法で実行される 外部プログラム・コマンド行として扱われます。

launcher 属性を使用した場合は、エディターも外部プログラムとして扱われます。 この場合、指定されたクラスは org.eclipse.ui.IEditorLauncher を実装する必要があります。 ランチャーがインスタンス化され、open(IFile file) が呼び出されてエディターが起動します。

class 属性を使用する場合、ワークベンチではこれが内部エディターであるものと見なし、 指定されたクラスは org.eclipse.ui.IEditorPart を実装する必要があります。 新しいエディター・タイプを定義する際には、subclass org.eclipse.ui.EditorPart をサブクラス化するのが一般的な方法です。 また、contributorClass 属性を定義する必要もあります。 指定されたクラスは org.eclipse.ui.IEditorActionBarContributor を実装する必要があり、 エディター・タイプのフィーチャーを反映するワークベンチ・メニューおよびツールバーに新しいアクションを追加する際に使用されます。

ワークベンチ内には、特定のタイプのエディターが複数開いている場合があります。 例えば、1 つまたは複数の Java エディターが開いているとします。 重複するアクションおよびアクション・イメージを作成することがないよう、エディターの概念は 2 つに分割されます。 アクションの作成は、IEditorActionBarContributor が行います。 エディターは、アクションの実装を行います。 さらに、コントリビューターは、開いている各エディターによって共用されます。 このような設計のため、1 つまたは複数の開いたエディター用に存在するアクション・セットは 1 つのみとなります。

コントリビューターは、エディター・タイプを反映するワークベンチ・メニューおよびツールバーに新しいアクションを追加します。 これらのアクションは共用され、起動時にはアクティブなエディターに対してアクションが行われます。 アクティブなエディターは、IEditorActionBarContributor.setActiveEditor を呼び出すことによって、 コントリビューターに渡されます。 ワークベンチ・ウィンドウ内のアクションおよび主要グループの ID は、 org.eclipse.ui.IWorkbenchActionConstants に定義されています。 これらは、新規アクションを追加するための参照ポイントとして使用されます。 トップレベル・メニューは、path 属性に次の値を使用して作成されます。

これらのパスに追加されたアクションおよびメニューは、関連するエディターがアクティブな場合にのみ 表示されます。 エディターを閉じると、メニューとアクションは除去されます。

ワークベンチには、 「デフォルト・テキスト・エディター」が用意されています。 エンド・ユーザー製品には、出荷時のバンドルとして、その他のエディターが含まれている場合があります。 この場合、エディターは上記の構文を使用して拡張機能として登録されます。