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.