O ponto de extensão org.eclipse.ui.preferencePages permite que você contribua com as páginas no diálogo de preferências do workbench (Janela->Preferências). O diálogo de preferências apresenta uma lista hierárquica de entradas de preferência de usuário. Cada entrada exibe uma página de preferência correspondente quando selecionada.
A ferramenta leia-me utiliza esse ponto de extensão para incluir a página de preferências de Exemplo Leia-me.
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> </extension>
Essa marcação define uma página de preferência chamada "Exemplo Leia-me" que é implementada pela classe ReadmePreferencePage. A classe deve implementar a interface IWorkbenchPreferencePage.
O workbench utiliza um PreferenceManager para manter uma lista de todos os nós na árvore de preferência e suas páginas correspondentes. Essa lista pode ser inicializada a partir de informações no registro de plug-in sem executar qualquer código de plug-in. Sua contribuição de plug-in para o diálogo de preferência (a entrada "Exemplo Leia-me" à esquerda) é exibida antes de executar qualquer código.
A preferência "Exemplo Leia-me" é incluída no nível superior da árvore de preferência à esquerda. Por que? Porque uma contribuição de página de preferência será incluída como uma raiz da árvore, a não ser que um atributo categoria seja especificado. (O nome categoria é algo ambíguo. Talvez um nome melhor seja caminho.) O atributo categoria especifica o id (ou uma seqüência de IDs da raiz) da página pai. Por exemplo, a marcação a seguir criaria uma segunda página de preferência da ferramenta leia-me, "Página Filha Exemplo Leia-me," como uma filha da página original.
<extension point = "org.eclipse.ui.preferencePages"> <page id="org.eclipse.ui.examples.readmetool.Page1" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage" name="%PreferencePage.name"> </page> <page id="org.eclipse.ui.examples.readmetool.Page2" class="org.eclipse.ui.examples.readmetool.ReadmePreferencePage2" name="Página Filha de Exemplo Leia-me" category="org.eclipse.ui.examples.readmetool.Page1> </page> </extension>
Assim que o usuário selecionar a entrada para uma página de preferência na árvore à esquerda, o workbench criará e exibirá uma página de preferência utilizando a classe especificada na definição da extensão. Essa ação é o que ativa o plug-in (se já não estava ativado devido a outra operação do usuário).