Editores de campo

A implementação de uma página de preferência é primariamente código SWT.  O código SWT é utilizado para criar os controles da página de preferência, definir e recuperar os valores dos controles. O pacote org.eclipse.jface.preference fornece classes auxiliares, chamadas de editores de campos, que criam os widgets e implementam a definição de valor e o código de recuperação para os tipos de preferência mais comuns. A plataforma fornece os editores de campo para exibir e atualizar muitos tipos de valor, incluindo booleano, cores, cadeias, inteiros, fontes e nomes de arquivo.

FieldEditorPreferencePage implementa uma página que utiliza esses editores de campo para exibir e armazenar os valores de preferência na página.  Em vez de criar controles SWT para preencher seu conteúdo, uma subclasse FieldEditorPreferencePage cria editores de campo para exibir o conteúdo.  Todos os campos na página devem ser implementados como editores de campo.  A seguir é apresentado um fragmento da 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()));
	...
}

A cada editor de campo é atribuído o nome da tecla de preferência correspondente e a etiqueta do texto para o controle SWT que será criado. O tipo do controle criado depende do tipo do editor de campo. Por exemplo, um editor de campo booleano cria uma caixa de entrada.

Desde que a página de preferência esteja associada a um armazenamento de preferência (especificado no método doGetPreferenceStore), o código para armazenar os valores atuais, para inicializar os valores de controle do armazenamento de preferência e para recuperar os controles para os valores padrão podem ser todos implementados no FieldEditorPreferencePage.

O FieldEditorPreferencePage utilizará um layout de grade com uma coluna como o layout padrão para os widgets do editor de campo.  Para solicitações de layout especial, é possível substituir o método createContents.