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.preference stellt Klassen für Hilfeprogramme, so genannte Feldeditoren, zur Verfügung, die die Fensterobjekte erstellen, sowie die Werteinstellung und den Abrufcode für die meisten gängigen Benutzervorgabentypen implementieren. Die Plattform bietet Feldeditoren für die Anzeige und Aktualisierung vieler 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 Unterklasse FieldEditorPreferencePage Feldeditoren, die den Inhalt anzeigen. Alle Felder auf der Seite müssen als Feldeditoren implementiert werden. Es folgt ein Ausschnitt aus der Benutzervorgabenseite der Debug-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-Fensterobjekt 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 einer Spalte als Standardlayout für Feldeditorfensterobjekte. Wenn Sie ein spezielles Layout benötigen, können Sie die Methode createContents überschreiben.