Editor di campo

L'implementazione di una pagina delle preferenze è principalmente compito del codice SWT. Tale codice viene utilizzato per creare i controlli della pagina delle preferenze, impostare i valori dei controlli e richiamare tali controlli. Il pacchetto org.eclipse.jface.preference fornisce classi helper, denominate editor di campo, che creano i widget ed implementano l'impostazione dei valori e il richiamo del codice per i tipi di preferenze più comuni. La piattaforma fornisce editor di campo per la visualizzazione e l'aggiornamento di vari tipi di valori, inclusi i valori booleani, i colori, le stringhe, i numeri interi, i tipi di carattere e i nomi file.

FieldEditorPreferencePage implementa una pagina che utilizza questi editor di campo per visualizzare e memorizzare i valori delle preferenze sulla pagina.  Anziché creare controlli SWT per il riempimento del proprio contenuto, una sottoclasse FieldEditorPreferencePage crea editor di campo per la visualizzazione del contenuto. Tutti i campi della pagina devono essere implementati come editor di campo. Di seguito è riportato un frammento della pagina delle preferenze dell'interfaccia utente per il debug:

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()));
	...
}

Ad ogni editor di campo viene assegnato il nome della corrispondente chiave di preferenze e l'etichetta di testo per il controllo SWT che l'editor provvederà a creare. Il tipo di controllo dipende dal tipo di editor di campo. Ad esempio, un editor di campo booleano crea una casella di controllo.

Dato che la pagina delle preferenze è associata ad una memorizzazione di preferenze (specificata nel metodo doGetPreferenceStore), il codice per la memorizzazione dei valori correnti, per l'inizializzazione dei valori di controllo dalla memorizzazione di preferenze e per il ripristino dei valori predefiniti dei controlli può essere interamente implementato in FieldEditorPreferencePage.

FieldEditorPreferencePage utilizzerà un layout di griglia con una colonna come layout predefinito per i widget di editor di campo. Per i requisiti di layout speciali, è possibile sostituire il metodo createContents.