Participantes da Pesquisa Lucene

org.eclipse.help.base.luceneSearchParticipants

3.2

Este ponto de extensão deve ser usado para adicionar conteúdos de documentos ao índice de pesquisa Lucene. Existem dois casos em que deve adicionar um participante de pesquisa:
  1. Para indexar documentos registados com um TOC do sistema de ajuda que não seja do formato HTML (como por exemplo, XML). Neste caso, o participante tem de declarar as extensões de ficheiros que consegue processar. O participante será chamado para indexar cada documento correspondente. Neste caso, o participante contém o âmbito do plug-in.
  2. Para indexar documentos fora do TOC do sistema de ajuda. Neste caso, o participante terá a oportunidade de indexar todos os documentos que conhece de uma só vez. Além disso, será delegada a tarefa de abrir o resultado da pesquisa ao participante, uma vez que o sistema de ajuda não saberá como abrir os documentos fora do TOC. Neste caso, o participante tem um âmbito global.

Os participantes de pesquisa estão associados ao plug-in em que a extensão aparece. Para reutilizar o participante noutros plug-ins, deverá ser utilizado a binding para os referenciar. Esta estratégia impede que um plug-in imponha o seu participante em todo o produto para as extensões do ficheiro com o qual foi registado. Ao adicionar uma referência explícita, o plug-in declara que permite que o participante de pesquisa referido processe a indexação dos documentos que tenham essas extensões. Os documentos que não fazem parte do TOC não correm esse perigo. Por esse motivo, são esses documentos são globais e a binding não deve ser utilizada.

<!ELEMENT extension (searchParticipant | binding)>

<!ATTLIST extension

point CDATA #REQUIRED

id    CDATA #IMPLIED

name  CDATA #IMPLIED>


<!ELEMENT searchParticipant (participant?)>

<!ATTLIST searchParticipant

id          CDATA #REQUIRED

name        CDATA #IMPLIED

icon        CDATA #IMPLIED

participant CDATA #IMPLIED

extensions  CDATA #IMPLIED

headless    (true | false) "false">


<!ELEMENT participant (parameter*)>

<!ATTLIST participant

class CDATA #IMPLIED>


<!ELEMENT parameter EMPTY>

<!ATTLIST parameter

name  CDATA #REQUIRED

value CDATA #REQUIRED>


<!ELEMENT binding EMPTY>

<!ATTLIST binding

participantId CDATA #IMPLIED>


De seguida é apresentado um exemplo de utilização do ponto de extensão:

  

<extension point=

"org.eclipse.help.base.luceneSearchParticipant"

>

<searchParticipant id=

"org.eclipse.myGlobalParticipant"

name=

"Global Participant"

icon=

"icons/mydoc.gif"

participant=

"org.eclipse.myPlugin.myPackage.MyGlobalParticipant"

headless=

"true"

/>

<searchParticipant id=

"org.eclipse.myXYZParticipant"

extensions=

"xyz"

participant=

"org.eclipse.myPlugin.myPackage.MyXYZParticipant"

/>

</extension>

A classe de participante de pesquisa fornecida tem de expandir a classe abstracta org.eclipse.help.search.LuceneSearchParticipant.

O sistema de ajuda faculta o participante de pesquisa para ficheiros XHTML (extensão xhtml). Os plug-ins que contêm documentos XHTML dinâmicos como parte do TOC têm de se associar a este participante através da utilização do elemento binding e de org.eclipse.help.base.xhtml como id do participante de destino.