L'implémentation d'une page de préférences consiste principalement en du code SWT. Ce dernier est utilisé pour créer les commandes de la page de préférences, définir les valeurs des commandes et les récupérer. Le package org.eclipse.jface.preference fournit des classes auxiliaires, appelées éditeurs de zone qui créent les widgets et implémentent la définition des valeurs et le code de récupération pour les types de préférences les plus courants. La plateforme fournit des éditeurs de zone pour l'affichage et la mise à jour de nombreux types de valeurs : booléens, couleurs, chaînes, entiers, polices et noms de fichier.
FieldEditorPreferencePage implémente une page qui utilise ces éditeurs de zone pour afficher et stocker les valeurs de préférences de la page. Au lieu de créer des contrôles SWT pour remplir son contenu, une sous-classe FieldEditorPreferencePage crée des éditeurs de zone pour afficher celui-ci. Toutes les zones dans la page doivent être implémentées en tant qu'éditeurs de zone. Voici un fragment de code issu de la page de préférences de l'interface de débogage :
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())); ... }
A chaque éditeur de zone est affecté le nom de sa clé de préférence correspondante et le libellé du texte de la commande SWT est créé. Le type de commande créé dépend du type d'éditeur de zone. Par exemple, un éditeur de zone booléen crée une case à cocher.
Comme la page des préférences est associée à un magasin de préférences (spécifié dans la méthode doGetPreferenceStore), le code permettant de stocker les valeurs courantes, d'initialiser les valeurs des commandes à partir du magasin de préférences et de restaurer leurs valeurs par défaut peut être totalement implémenté dans FieldEditorPreferencePage.
FieldEditorPreferencePage utilise une grille avec une colonne comme présentation par défaut des widgets d'éditeur de zone. Pour des exigences de présentation particulière, vous pouvez remplacer la méthode createContents.