Die Implementierung einer Benutzervorgabenseite besteht primär aus SWT-Code. Mit SWT-Code werden die Steuerelemente der Benutzervorgabenseite erstellt, die Werte der Steuerelemente festgelegt und die Werte der Steuerelemente abgerufen. Das Paket org.eclipse.jface.preferencestellt Klassen für Hilfeprogramme, so genannte Feldeditoren, zur Verfügung, die die Widgets erstellen sowie die Werteinstellung und den Abrufcode für die meisten gängigen Benutzervorgabentypen implementieren. Die Plattform bietet Feldeditoren zum Anzeigen und Aktualisieren von vielen Werttypen, inklusive Boolescher Werte, Farben, Zeichenfolgen, Integer, Schriftarten und Dateinamen.
FieldEditorPreferencePage implementiert eine Seite, die diese Feldeditoren zum Anzeigen und Speichern der Benutzervorgabenwerte auf der Seite verwendet. Statt den Inhalt durch die Erstellung von SWT-Steuerelementen zu füllen, erstellt die Unterklasse FieldEditorPreferencePage Feldeditoren, die den Inhalt anzeigen. Alle Felder auf der Seite müssen als Feldeditoren implementiert werden. Der folgende Ausschnitt stammt aus der Benutzervorgabenseite für die Debugbenutzerschnittstelle:
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())); ... }
Jedem Feldeditor ist der Name des entsprechenden Schlüssels für die Benutzervorgabe und die Textbezeichnung für das SWT-Widget zugeordnet, das durch ihn erstellt wird. Der Typ des erstellten Steuerelements ist vom Typ des Feldeditors abhängig. Ein Boolescher Feldeditor erstellt z. B. ein Markierungsfeld.
Da der Benutzervorgabenseite ein Benutzervorgabenspeicher zugeordnet ist (angegeben in der Methode doGetPreferenceStore), kann der gesamte Code für das Speichern der aktuellen Werte, die Initialisierung der Steuerelementwerte aus dem Benutzervorgabenspeicher und das Zurücksetzen der Steuerelemente auf die Standardwerte in der Klasse FieldEditorPreferencePage implementiert werden.
Die Klasse FieldEditorPreferencePage verwendet ein Rasterlayout mit 1 Spalte als Standardlayout für Feldeditor-Widgets. Wenn Sie ein spezielles Layout benötigen, können Sie die Methode createContents überschreiben.