org.eclipse.ui.preferencePages 拡張ポイントによって、ユーザーはページを「ワークベンチ設定」ダイアログ (「Window」->「設定」と選択) に追加できます。「設定」ダイアログは、ユーザー設定エントリーの階層リストを表示します。それぞれのエントリーは、対応する選択時の設定ページを表示します。
README ツールはこの拡張ポイントを使用して、「README サンプル設定」ページを追加します。
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> </extension>
このマークアップは、ReadmePreferencePage クラスがインプリメントする "README 例 (Readme Example)" という名前の設定ページを定義します。このクラスは IWorkbenchPreferencePage インターフェースをインプリメントする必要があります。
ワークベンチは PreferenceManager を使用して、設定ツリーのすべてのノードおよびその対応するページのリストを保持します。このリストは、 プラグイン・コードをまったく実行しなくても、プラグイン・レジストリーの情報で初期化できます。 ユーザー・プラグインの設定ダイアログ (左側の "README サンプル" エントリー) への追加は、 すべてのユーザーのコードが実行される前に表示されます。
"README サンプル" 設定は、左側の設定ツリーのトップレベルに追加されます。 これはなぜでしょうか。これは追加される設定ページが、 カテゴリー属性が指定されていない限り、ツリーのルートとして追加されるためです。(カテゴリーという名前は誤解を招きやすい名前です。 誤解を避けるには、パスという名前の方がいいかもしれません。)カテゴリー属性は、 親ページの ID (またはルートからの一連の ID) を指定します。例えば、以下のマークアップは 2 番めの README ツール設定ページ "README 例の子ページ (Readme Example Child Page)" を、オリジナル・ページの子として作成します。
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> <page id="org.eclipse.ui.examples.readmetool.Page2" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage2" name="Readme Example Child Page" category="org.eclipse.ui.examples.readmetool.Page1> </page> </extension>
ユーザーが左側のツリーの設定ページのエントリーを選択すると、 ワークベンチは拡張定義で指定されたクラスを使用して、設定ページを作成し、表示します。 このアクションがプラグインを起動します (他のユーザー操作によってそのプラグインがまだ起動されていない場合)。