Felteditorer

Implementeringen af en indstillingsside består primært af SWT-kode. SWT-kode bruges til at oprette kontroller for indstillingssiden, angive værdierne af kontrollerne og hente værdierne af kontrollerne. Pakken org.eclipse.jface.preference stiller hjælpeklasser til rådighed, der kaldes felteditorer, og de opretter elementerne og implementerer værdiangivelsen og hentningskoden for de mest almindelige indstillingstyper. Platformen stiller felteditorer til rådighed for fremvisning og opdatering af mange værdityper, inkl. booleske værdier, farver, strenge, fonte og filnavne.

FieldEditorPreferencePage implementerer en side, der bruger disse felteditorer til at vise og lagre indstillingsværdier på siden.  I stedet for at oprette SWT-kontroller til at udfylde indholdet, opretter underklassen FieldEditorPreferencePage felteditorer til brug for fremvisning af indholdet. Alle felterne på en side skal implementeres som felteditorer. Følgende er et stykke kode fra fejlfindingsgrænsefladens indstillingsside:

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()));
	...
}

Hver felteditor er tildelt navnet på dets tilsvarende indstillingsnøgle og tekstetiket for den SWT-kontrol, som det skal oprette. Typen af den kontrol, der oprettes, afhænger af typen af felteditor. Et boolesk felteditor opretter f.eks. et afkrydsningsfelt.

Da indstillingssiden er knyttet til et indstillingslager (angivet i doGetPreferenceStore-metoden), kan koden for lagring af de aktuelle værdier, for initialisering af kontrolværdier fra indstillingslageret og for gendannelse af standardværdier for kontroller implementeres i FieldEditorPreferencePage.

FieldEditorPreferencePage bruger også et gitterlayout med én kolonne som standardlayout for felteditorens elementer. Hvis du har særlige krav til layout, kan du tilsidesætte metoden createContents.