フィールド・エディター

設定ページのインプリメンテーションは基本的に SWT コードです。  SWT コードは、 設定ページ・コントロールの作成、コントロール値の設定、およびコントロール値の検索 に使用されます。org.eclipse.jface.preference パッケージは、 ウィジェットを作成し、最も一般的な設定型の値設定コードおよび検索コードを実装する、 フィールド・エディター という名前の helper クラスを提供します。 プラットフォームは、ブール値、色、ストリング、整数、フォント、およびファイル名を含む多数の値の型を表示および更新する、フィールド・エディターを提供します。

FieldEditorPreferencePage は、 ページ上の設定値を表示および保管するこれらフィールド・エディターを使用するページをインプリメントします。 FieldEditorPreferencePage サブクラスは、コンテンツを表すために SWT コントロールを作成する代わりに、フィールド・エディターを作成してコンテンツを表示します。  ページにあるフィールドはすべて、フィールド・エディターとしてインプリメントされていなければなりません。  以下は、デバッグ UI 設定ページからの断片です。 

protected void createFieldEditors() {
	addField(new BooleanFieldEditor(IDebugUIConstants.PREF_BUILD_BEFORE_LAUNCH,
		DebugPreferencesMessages.getString("DebugPreferencePage.auto_build_before_launch"),
		SWT.NONE, getFieldEditorParent()));
	...	
	String[][] perspectiveNamesAndIds = getPerspectiveNamesAndIds();
	addField(new ComboFieldEditor(IDebugUIConstants.PREF_SHOW_DEBUG_PERSPECTIVE_DEFAULT,
		DebugPreferencesMessages.getString("DebugPreferencePage.Default_perspective_for_Debug_2"), //$NON-NLS-1$
		perspectiveNamesAndIds,
		getFieldEditorParent()));
	...
}

それぞれのフィールド・エディターには、エディターが作成する SWT コントロールに対して、 対応する設定キー名、およびテキスト・ラベルが割り当てられます。 作成されるコントロールの種類は、フィールド・エディターの型によって異なります。例えば、ブール値フィールド・エディターはチェック・ボックスを作成します。

設定ページは設定ストアに関連付けされている ( doGetPreferenceStore メソッドで指定される) ため、 現行値の保管、設定ストアによるコントロール値の初期化、およびコントロールのデフォルト値への復元のためのコードは、 すべて FieldEditorPreferencePage に実装することが可能です。

FieldEditorPreferencePage は、 フィールド・エディター・ウィジェットのデフォルト・レイアウトとして、1 つのカラムに格子レイアウトを使用します。  特別なレイアウト要件には、createContents メソッドをオーバーライドすることができます。