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.
org.eclipse.help.search.ISearchEngine
. A classe é responsável pela procura baseada em uma determinada consulta e escopo.org.eclipse.help.ui.RootScopePage
. Essa página contém o comutador principal para o mecanismo de procura e geralmente é utilizada para hospedar widgets utilizados para refinar o escopo de procura do mecanismo.org.eclipse.help.ui.ISearchScopeFactory
. A fábrica é responsável por criar objetos ISearchScope a partir das configurações armazenadas na classeIPreferenceStore
. Se pageClass
for especificada, a fábrica do escopo deverá ser especificada também.<!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.
org.eclipse.help.ui.ISearchScopePage
.<!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.
org.eclipse.core.runtime.Platform.getProduct()
). Se não for especificado, o mecanismo aparecerá para todos os produtos.true
, o mecanismo inicialmente será ativado. Os usuários podem substituir esse valor na UI.<!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.
<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}&ul=&ps=20&m=all"
>
</param>
</engine>
</extension>
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
.
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=allOs 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
.
Direitos Autorais (c) 2000, 2005 IBM Corporation e outros.
Todos os direitos reservados. Este programa e os materiais fornecidos com ele são
disponibilizados sob os termos da Licença Pública do Eclipse v1.0 que acompanha
esta distribuição e está disponível em
http://www.eclipse.org/legal/epl-v10.html