Participants à la recherche Lucene

org.eclipse.help.base.luceneSearchParticipants

3.2

Ce point d'extension doit être utilisé pour ajouter le contenu d'un document à l'index de recherche Lucene. Il est nécessaire d'ajouter un participant à la recherche dans deux cas :
  1. Pour indexer des documents enregistrés avec la table des matières du système d'aide qui ne sont pas au format HTML (par exemple, XML). Dans ce cas, le participant doit déclarer les extensions de fichier qu'il peut traiter. Il sera appelé pour indexer le document correspondant. Le participant bénéficie alors de la portée du plug-in.
  2. Pour indexer des documents en dehors de la table des matières du système d'aide. Dans ce cas, le participant aura la possibilité d'indexer tous les documents qu'il connaît en une fois. En outre, le participant se verra déléguer la tâche d'ouverture du résultat de la recherche car le système d'aide ne sera pas comment ouvrir les documents en dehors de la table des matières. Le participant bénéficie alors de la portée globale.

Les participants à la recherche sont associés au plug-in dans lequel l'extension apparaît. Pour réutiliser le participant dans d'autres plug-ins, l'élément binding doit être utilisé pour les référencer. Cette stratégie empêche un plug-in d'imposer son participant sur l'ensemble du produit pour les extensions de fichier avec lesquelles il a été enregistré. En ajoutant une référence explicite, le plug-in déclare qu'il permet au participant de recherche référencé d'assurer l'indexation des documents avec ces extensions. Pour les documents qui ne font pas partie de la table des matières, ce risque n'existe pas. Pour cette raison, ils sont globaux et l'élément binding ne doit pas être utilisé.

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


L'exemple ci-dessous illustre l'utilisation d'un point d'extension :

  

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

La classe du participant à la recherche fournie doit étendre la classe abstraite org.eclipse.help.search.LuceneSearchParticipant.

Le système d'aide fournit un participant à la recherche pour les fichiers XHTML (extension xhtml). Les plug-ins ayant des documents XHTML dynamiques dans leur table des matières doivent effectuer une liaison à ce participant à l'aide de l'élément binding et de org.eclipse.help.base.xhtml comme ID de participant cible.