Pesquisar mecanismo

org.eclipse.help.ui.searchEngine

3.1

Esse ponto de extensão é utilizado para conectar participantes de procura de ajuda federada. Cada mecanismo de procura pode ser configurado individualmente. Quando a procura é iniciada, cada mecanismo de procura é executado como uma tarefa de segundo plano e os resultados são conferidos na visualização de ajuda imediatamente na consulta.

Os mecanismos de procura definidos aqui, não serão mostrados automaticamente como participantes de procura federados até que a ligação do produto do mecanismo seja estabelecida, a menos que o atributo productId seja deixado como indefinido. Para mecanismos que o definem, apenas aqueles ligados a um produto específico serão mostrados quando esse produto está em execução.

Os mecanismos de procura podem simplesmente compor uma URL e fornecer apenas uma dica que contém essa URL como href. Os mecanismos populares de procura para os quais o suporte da API requer licença podem ser conectados como esse. Na outra extremidade do espectro, os mecanismos de procura podem comunicar-se com o servidor e receber dicas individuais com informações como etiqueta, href, descrição curta, score, etc. O mecanismo de ajuda local pode produzir dicas dessa maneira.

Independentemente do mecanismo de procura, os mecanismos podem fornecer várias configurações do escopo de procura, utilizando páginas de preferências JFace. Essas páginas são mostradas quando o link 'Configurações Avançadas' é seguido a partir da visualização Ajuda. Além das páginas de preferências da raiz definidas com o mecanismo, sub-páginas de preferências adicionais podem ser conectadas para obter mais configurações avançadas.

As configurações de escopo são carregadas e armazenadas, utilizando objetos IPreferenceStore. As configurações de escopo para todos os mecanismos estão agrupadas em um denominado conjunto de escopos. Quando é aberto pela primeira vez, o conjunto de escopos padrão ('Default') é criado, mas os usuários podem definir mais conjuntos de escopos e fazer a inversão entre eles.

Como o suporte de procura federado faz parte do plug-in org.eclipse.help.base, um depósito de informações do provedor é necessário para criar objetos de escopo de procura a partir dos dados do armazenamento de preferências. Os clientes que conectam páginas de preferências do escopo devem conectar também os depósitos de informações dos provedores de escopo.

Os mecanismos definidos nesse ponto de extensão não são mostrados na UI, por padrão. O que é mostrado ali, é uma instância concreta de um mecanismo de procura que pode ser modificado individualmente. Os produtos podem pré-configurar o sistema de ajuda com uma série de instâncias dos tipos de mecanismos registrados, possivelmente parametrizados para serem executados da maneira desejada. Além disso, os usuários podem incluir suas próprias instâncias de mecanismos registrados e configurá-los da maneia como desejarem.

<!ELEMENT extension (engineType* , engine*)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT engineType (description? , subpage*)>

<!ATTLIST engineType

id           CDATA #REQUIRED

label        CDATA #REQUIRED

icon         CDATA #IMPLIED

class        CDATA #REQUIRED

pageClass    CDATA #IMPLIED

scopeFactory CDATA #IMPLIED>

define um tipo específico de mecanismo de procura. O tipo do mecanismo de procura pode ser utilizado para criar instâncias do mecanismo, pelo usuário ou pré-carregado com o produto. Para serem úteis, os mecanismos de procura devem ser configuráveis para que diversos mecanismos possam ser criados utilizando um único tipo de mecanismo.



<!ELEMENT descrição (#PCDATA)>

uma breve descrição do mecanismo de procura



<!ELEMENT subpage EMPTY>

<!ATTLIST subpage

id       CDATA #REQUIRED

label    CDATA #REQUIRED

class    CDATA #IMPLIED

category CDATA #REQUIRED>

uma página-filho para a página de preferências do escopo-raiz definido no elementoengine. Se o atributo do mecanismo pageClass não estiver definido, todas as subpáginas serão ignoradas.



<!ELEMENT engine (description? , param*)>

<!ATTLIST engine

productId    CDATA #IMPLIED

engineTypeId CDATA #REQUIRED

enabled      (true | false)

label        CDATA #IMPLIED

id           CDATA #REQUIRED>

Especifica uma instância concreta de um tipo de mecanismo de procura específico. A instância pode estar vinculada ao produto para ser mostrada só quando esse produto estiver ativo. O mecanismo pode ter sua própria etiqueta e descrição. Se não forem especificados, serão utilizados os dados do tipo de mecanismo. Finalmente, cada tipo de mecanismo define um conjunto válido de parâmetros que podem ser informados a ele para serem configurados. Os mecanismos podem especificar os valores desses parâmetros.



<!ELEMENT param EMPTY>

<!ATTLIST param

name  CDATA #REQUIRED

value CDATA #REQUIRED>

um parâmetro opcional que é utilizado para configurar essa instância de um tipo de mecanismo de procura. Os parâmetros válidos são definidos pelo tipo de mecanismo.



A seguir, há um exemplo da extensão de procura da ajuda:

   

<extension point=

"org.eclipse.help.ui.searchEngine"

>

<engineType scopeFactory=

"com.example.xyz.XYZScopeFactory"

label=

"XYZ Search"

class=

"com.example.xyz.search.XYZSearch"

icon=

"icons/etool16/xyzsearch.gif"

pageClass=

"com.example.xyz.search.XYZSearchPage"

id=

"com.example.xyz.XYZSearch"

>

<description>

As instâncias da Procura XYZ procuram o site XYZ.

</description>

</engineType>

<engine enabled=

"true"

engineTypeId=

"com.example.xyz.search.XYZSearch"

id=

"com.example.xyz.XYZSearch"

label=

"XYZ Search"

>

</engine>

<engine enabled=

"true"

engineTypeId=

"org.eclipse.help.ui.web"

id=

"org.eclipse.sdk.Eclipse"

label=

"%search.Eclipse.label"

>

<description>

%search.Eclipse.desc

</description>

<param name=

"url"

value=

"http://eclipse.org/search/search.cgi?q={expression}&amp;ul=&amp;ps=20&amp;m=all"

>

</param>

</engine>

</extension>

O atributo class do elemento engineType deve fornecer o nome completo da classe que implementa org.eclipse.help.search.ISearchEngine. O atributo pageClass deve fornecer o nome completo da classe que estende org.eclipse.help.ui.RootScopePage. O atributo scopeFactory deve fornecer o nome completo da classe que implementa org.eclipse.help.ui.ISearchScopeFactory. O atributo class do elemento subpage deve fornecer o nome completo da classe que implementa org.eclipse.help.ui.ISearchScopePage.

O plug-in da UI de ajuda fornece tipos de mecanismo de procura para a documentação de ajuda local, o InfoCenter e a procura da Web, assim como a instância do mecanismo de procura de ajuda local. Essa instância não aceita parâmetros e não tem Id do produto, portanto será exibida em todos os produtos.

Os produtos podem criar instâncias concretas do InfoCenter e procuras da Web, utilizando o id do mecanismo e os parâmetros requeridos.

O tipo de mecanismo do InfoCenter tem o Id do mecanismoorg.eclipse.help.ui.infoCenter e aceita um parâmetro url que aponta para o servidor remoto em que o InfoCenter está instalado. Os resultados são mostrados da mesma forma como os resultados da ajuda local.

O tipo de mecanismo de procura da Web tem o id do mecanismo org.eclipse.help.ui.web e aceita um parâmetro url, que representa um cadeia de procura concreta com a cadeia de procura real substituída por um símbolo de substituição '{expression}', como no exemplo a seguir:

http://eclipse.org/search/search.cgi?q={expression}&ul=&ps=20&m=all

Os resultados da procura da Web são mostrados como um link que abrirá o navegador da Web com a cadeia de procura substituída pelo parâmetro url.