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>