Editores de campo

A implementação de uma página de preferências é principalmente código de SWT.  O código de SWT é utilizado para criar os controlos da página de preferências, definir os valores dos controlos, e obter os valores dos controlos. O pacote org.eclipse.jface.preference faculta classes ajudantes, chamadas editores de campos, que criam os widgets e implementam a definição de valor e o código de obtenção para os tipos de preferências mais comuns. A plataforma proporciona editores de campos para apresentar e actualizar muitos tipos de valores, incluindo booleanos, cores, cadeias, números inteiros, tipos de letra e nomes de ficheiros.

A FieldEditorPreferencePage implementa uma página que utiliza estes editores de campos para apresentar e armazenar os valores de preferências na página.  Em vez de criar controlos de SWT para preencher o seu conteúdo, uma subclasse FieldEditorPreferencePage cria editores de campos para apresentar o conteúdo.  Todos os campos na página devem ser implementados como editores de campos.  De seguida é apresentada uma porção de código de uma página de preferências da UI de depuração:

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

É atribuído a cada editor de campos o nome da chave de preferências correspondente e a etiqueta de texto para o controlo de SWT que irá criar. A espécie de controlo criado depende do tipo de editor de campos. Por exemplo, um editor de campos booleano cria uma caixa de verificação.

Dado que a página de preferências está associada a um arquivo de preferências (especificado no método doGetPreferenceStore), o código para armazenar os actuais valores, para inicializar os valores de controlo a partir do arquivo de preferências, e para restaurar as predefinições dos controlos, pode ser implementado na FieldEditorPreferencePage.

A FieldEditorPreferencePage utiliza um esquema em grelha com uma coluna como esquema predefinido para widgets de editores de campos.  No caso de requisitos de esquema especiais, poderá sobrepor o método createContents.