内部エディターにおいては、ワークベンチ・ウィンドウとエディター・パーツ間で密接な統合関係が実現されます。 ワークベンチのメニューおよびツールバーには、「切り取り」、「コピー」、「貼り付け」のような いくつかの共通アクションがあらかじめ用意されています。 アクティブなパーツ (ビューまたはエディター) には、これらのアクションの実装が用意されているはずです。 また内部エディターは、ワークベンチ・ウィンドウに現れる新規アクションを定義することができます。 これらのアクションは、エディターがアクティブである場合にのみ現れます。
ワークベンチと外部エディターとの間の統合は、それほど密接ではありません。 この場合、ワークベンチは、エディターを起動することはありますが、その後、外部エディターの状態を判別、 または何らかの方法によって (ファイル・システムによる場合は除く) 共同作業を行うことはありません。
<!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>
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 属性に次の値を使用して作成されます。
Copyright (c) 2002, 2005 IBM Corporation and others.
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html