Contribuindo com uma Página de Procura

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.

Implementando a Página de Procura

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.