Contribuir con una página de búsqueda

Cuando el usuario selecciona un recurso y elige el mandato de búsqueda, el conector de búsqueda lanza un diálogo que contiene páginas para diferentes tipos de búsquedas de contenido.  Estas páginas se añaden mediante el punto de extensión org.eclipse.search.searchPages.

El código destinado a añadir una página de búsqueda es sencillo.  El ejemplo siguiente corresponde a la adición de la página de búsqueda Java por parte del conector JDT:

<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>

Debe especificarse la clase que implementa la página de búsqueda.  Esta clase debe implementar la interfaz ISearchPage y normalmente amplía DialogPage.  También se especifican la etiqueta y el icono que pueden utilizarse para describir la búsqueda en el diálogo de búsqueda.  Existen parámetros adicionales que controlan el tamaño de la página y la ubicación de la misma en el diálogo de búsqueda.

El atributo extensions especifica los recursos en los que puede operar la página de búsqueda.  Su formato es el de una lista de extensiones de archivo separadas por comas.  Cada extensión de archivo debe ir seguida de un valor de peso numérico, donde 0 es el peso más ligero, separado por un signo de dos puntos.  El valor de peso es un valor relativo utilizado para permitir que la infraestructura de búsqueda encuentre la página de búsqueda más adecuada a un recurso determinado.

Si una página de búsqueda puede buscar en todos los recursos posibles, debe utilizarse un asterisco, "*".

Implementar la página de búsqueda

El protocolo de ISearchPage es simple.  La página de búsqueda debe implementar performAction(), al que se llama cuando se pulsa el botón Buscar.   Evidentemente, la implementación de una búsqueda concreta depende de la función del conector, pero es habitual abrir un visor de resultados en este método utilizando el método activateSearchResultView() de NewSearchUI.

El conector se encarga de mostrar los resultados en la vista de resultados de búsqueda.