Lucene-deltagersøgning

org.eclipse.help.base.luceneSearchParticipants

3.2

Dette udvidelsespunkt bruges til at tilføje dokumentindhold til Lucenes søgeindeks. I to tilfælde kan du ønske at tilføje en søgedeltager:
  1. For at indeksere dokumenter, der er registreret med hjælpens TOC, der ikke er i HTML-format, f.eks. XML. I dette tilfælde skal deltageren erklære filtyper, den kan håndtere. Den kaldes for at indeksere alle matchende dokumenter. I dette tilfælde har deltageren plugin-omfanget.
  2. For at indeksere dokumenter uden for hjælpens TOC. I dette tilfælde får deltageren en mulighed for at indeksere alle dokumenter, den kender til, på en gang. Desuden vil deltageren få delegeret opgaven at åbne søgeresultatet, fordi hjælpesystemet ikke ved, hvordan dette dokument skal åbnes uden for TOC. I dette tilfælde har deltageren globalt omfang.

Søgedeltagere er knyttet til den plugin, udvidelsen vises i. Hvis du vil genbruge deltageren i andre plugins, skal der anvendes binding for at henvise til dem. Denne strategi forhindrer en plugin i at forstyrre dens deltagere i hele produktet for de filudvidelser, den blev registreret med. Ved at tilføje en eksplicit reference erklærer plugin'en at den tillader den søgedeltager, der henvises til, at håndtere indeksering af dokumenter med disse filtyper. For dokumenter, der ikke er en del af TOC, er der ikke en sådan fare. Af denne grund er de globale, og binding bør ikke anvendes.

<!ELEMENT extension (searchParticipant | binding)>

<!ATTLIST-udvidelse

point CDATA #REQUIRED

id    CDATA #IMPLIED

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


Det følgende er et eksempel på brug af udvidelsespunktet:

  

<udvidelsespunkt=

"org.eclipse.help.base.luceneSearchParticipant"

>

<searchParticipant id=

"org.eclipse.myGlobalParticipant"

name=

"Global deltager"

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>

Den leverede søgedeltagerklasse skal udvide den abstrakte klasse org.eclipse.help.search.LuceneSearchParticipant.

Hjælpen stiller søgedeltagere til XHTML-filer (filtypen xhtml) til rådighed. Plugins, der har dynamiske XHTML-dokumenter som en del af TOC, skal bindes til deltageren vha. elementet binding og org.eclipse.help.base.xhtml som måldeltager-id.