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.
Die Klasse FieldEditorPreferencePage implementiert eine Seite, die diese Feldeditoren einsetzt, um die Benutzervorgabenwerte auf der Seite anzuzeigen und zu speichern.
Statt den Inhalt durch die Erstellung von SWT-Steuerelementen zu füllen, erstellt die Klasse FieldEditorPreferencePage Feldeditoren, die den Inhalt anzeigen. Der folgende Codeausschnitt stammt aus der Benutzervorgabenseite für das Debug der Benutzerschnittstelle:
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.