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.