Quando o usuário seleciona um recurso e escolhe o comando de procura, o plug-in de procura ativa um diálogo que contém páginas para diferentes tipos de procuras de conteúdo. Essas páginas são contribuídas utilizando o ponto de extensão org.eclipse.search.searchPages.
A marcação para contribuir com uma página de pesquisa é direta. O exemplo a seguir é a contribuição do plug-in JDT da página de pesquisa Java:
<extension point="org.eclipse.search.searchPages"> <page id="org.eclipse.jdt.ui.JavaSearchPage" icon="icons/full/obj16/jsearch_obj.png" label="%JavaSearchPage.label" sizeHint="460,160" extensions="java:90, jav:90" showScopeSection="true" canSearchEnclosingProjects="true" class="org.eclipse.jdt.internal.ui.search.JavaSearchPage"> </page> </extension>
A classe que implementa a página de procura deve ser especificada. Essa classe deve implementar a interface ISearchPage e normalmente estender DialogPage. A etiqueta e o ícone que podem ser utilizados para descrever a pesquisa em seu diálogo também são especificados. Parâmetros adicionais controlam o tamanho da página e sua localização no diálogo de procura.
O atributo extensions especifica os recursos nos quais a página de procura pode operar. Ele é formatado como uma lista de extensões de arquivos separados por vírgulas. Cada extensão de arquivo deve ser seguida por um valor de peso numérico, em que 0 é o menor peso, separado por uma vírgula. O valor do peso é um valor relativo utilizado para permitir que a infra-estrutura de procura localize a página de procura mais apropriada para determinado recurso.
Se uma página de procura puder pesquisar todos os recursos possíveis, "*" deverá ser utilizado.
O
protocolo para ISearchPage
é simples. Sua página de procura deve implementar performAction()
que
será chamado quando o botão Procurar for pressionado. É
claro, sua implementação de procura específica depende da função do
seu plug-in, mas é comum abrir um visualizador de resultados neste
método utilizando o método
NewSearchUI
activateSearchResultView().
Seu plug-in é responsável por mostrar seus resultados na visualização resultado da procura.