その他のテキスト・エディターが行うこと

Java サンプル・エディターは、いくつもの役立つデフォルト動作を AbstractTextEditor から継承します。 テキスト編集フレームワークは、 AbstractTextEditor のメソッドを オーバーライドすることによってあなたがカスタマイズできる、いくつかのその他の責任を処理します。  どのように動作がフレームワークでカスタマイズされるかを調べるには、このクラスおよびそのサブクラスの インプリメンテーションを見てください。 

構成可能な、いくつかの役立つフレームワーク・フィーチャーは以下のとおりです。

設定の処理

テキスト・エディターは一般に、エディターの表記および動作を制御するユーザー設定を提供します。 テキスト・フレームワークにおいて、テキスト・エディター・インスタンスはそれぞれ、ユーザー設定へのアクセスに使用される 関連設定ストアを持っています。  この設定ストアはエディターによってセットアップできますが、すでにフレームワークで使用されている設定ストアから 継承することもできます。 

Java サンプル・エディターの場合、 TextEditor によって開始された 設定ストアを継承しています。 これは、ワークベンチ・エディター・プラグインによって定義されている設定ストアです。    

protected void initializeEditor() {
	...
	setPreferenceStore(EditorsPlugin.getDefault().getPreferenceStore());
}
エディター・プラグイン設定は、「ワークベンチ」>「エディター」および 「ワークベンチ」>「エディター」>「テキスト・エディター」設定ページで操作できます。

エディターの標準ワークベンチ・テキスト設定を使用したくない場合、別の設定ストアを設定することができます。 これは通常、initializeEditor をオーバーライドし、独自の設定ストアを設定することによって行われます。  独自の設定ストアを使用する場合、設定が更新されるたびに起動されるメソッド handlePreferenceStoreChanged() をオーバーライドすることが必要になります。 

キー・バインディング

キー・バインディングの検索順序を指定するため、キー・バインディング・スコープが 役立ちます。 コンテキスト・スコープを準備しておくと、異なるプラグインが競合するキー・シーケンスを使用する可能性が小さくなります。  デフォルトでは、ワークベンチはグローバル・スコープで機能します。 テキスト・エディターがアクティブになると、テキスト・エディターがスコープをテキスト・エディター・スコープにリセットするため、 エディター特定のキー・バインディングがアクティブになります。 

プラットフォーム・テキスト・フレームワークにおいて、テキスト・エディター・インスタンスはそれぞれ、 ユーザー設定へのアクセスに使用される関連キー・バインディング・スコープを持っています。 アクティブになると、このスコープの設定を行わなければなりません。  TextEditor はこのスコープを 定義し、アクティブにすることに関して責任を持ちます。  以下のように、スコープはコンストラクターから呼び出されたメソッドで割り当てられます。 

protected void initializeKeyBindingScopes() {
	setKeyBindingScopes(new String[] { "org.eclipse.ui.textEditorScope" });  
}

メソッドへの引き数は、ストリング・キー・バインディング・スコープ ID の配列です。 エディターに独自のキー・バインディング・スコープを定義させたい場合、このメソッドをエディター・クラスで オーバーライドするか、setKeybindingScopes を使用してスコープを動的に設定することができます。 

スコープそれ自身は、org.eclipse.ui.commands 拡張ポイントの対応する ID で定義されていなければなりません。 テキスト・エディター・スコープの定義は、以下のとおりです。 

<extension
         point="org.eclipse.ui.commands">
      ...
      <scope
            name="%scope.text.name"
            parent="org.eclipse.ui.globalScope"
	    description="%scope.text.description"
            id="org.eclipse.ui.textEditorScope">
      </scope>
   </extension> 

Copyright IBM Corporation and others 2000, 2003.