Quando o usuário seleciona um recurso e escolhe o comando de pesquisa, o plug-in de pesquisa ativa um diálogo que contém páginas para diferentes tipos de pesquisas 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.gif" label="%JavaSearchPage.label" sizeHint="460,160" extensions="java:90, jav:90" showScopeSection="true" class="org.eclipse.jdt.internal.ui.search.JavaSearchPage"> </page> </extension>
A classe que implementa a página de pesquisa deve ser especificada. Essa classe deve implementar a interface ISearchPage e normalmente estender DialogPage. O label e icon 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 pesquisa.
O atributo extensions especifica os recursos nos quais a página de pesquisa 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 pesquisa localize a página de pesquisa mais apropriada para determinado recurso.
Se uma página de pesquisa puder pesquisar todos os recursos possíveis, "*" deverá ser utilizado.
O
protocolo para ISearchPage
é simples. Sua página de pesquisa deve implementar performAction()
que
será chamado quando o botão Pesquisar for pressionado. Evidentemente que sua
implementação específica de pesquisa depende da função de seu plug-in, mas é
típico abrir um visualizador de resultados nesse método utilizando
o método activateSearchResultView()
de
SearchUI
.
Seu plug-in é responsável por mostrar seus resultados na exibição resultado da pesquisa. As correspondências são adicionadas à exibição utilizando o protocolo ISearchResultView. Para cada correspondência da pesquisa, são especificados uma descrição da correspondência e um marcador no recurso. Consulte Marcadores de recurso para obter informações sobre marcadores e como eles funcionam.