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

ID: org.eclipse.ui.editors

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

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

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

構成マークアップ:

   <!ELEMENT editor EMPTY>
   <!ATTLIST editor
      id                 CDATA #REQUIRED
      name               CDATA #REQUIRED
      icon               CDATA #IMPLIED
      class              CDATA #IMPLIED
      command            CDATA #IMPLIED
      launcher           CDATA #IMPLIED
      contributorClass   CDATA #IMPLIED
      extensions         CDATA #OPTIONAL
      filenames          CDATA #OPTIONAL
      default            CDATA (true|false) "false"

例:

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

   <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"
         default="false">
      </editor>
   </extension>

API 情報:

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

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

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

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

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

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

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

Copyright IBM Corp. 2000, 2001.  All Rights Reserved.