Beskriv og pak kontekstafhængig hjælp

Du beskriver den kontekstafhængige hjælp ved at knytte den kontekst-id, der er erklæret i grænsefladekoden, til en beskrivelse og en liste over link til de relaterede emner i onlinehjælpen. Disse tilknytninger foretages i en XML-fil. Du kan oprette et vilkårligt antal XML-filer, der indeholder tilknytninger til kontekstafhængig hjælp, for hver plugin. Beskrivelsen og linkene for hver kontekst-id oprettes i elementer af typen <context> i XML-filen. Hvert kontekstelement kan have et element af typen <description>, som bruges til at beskrive grænsefladeobjektet, og et vilkårligt antal elementer af typen <topic>, som opretter link til onlinedokumentationen.

Siden version 3.1 har det været muligt for kontekstelementer at tilsidesætte den standardtitel, der bruges til at præsentere de kontekstafhængige hjælpeoplysninger i hjælpeoversigten.

<contexts>
	<context id="panic_button" title="Title på panikknap">
		<description>Dette er knappen Panik.</description>
		<topic href="tasks/pushing_the_panic_button.htm" label="Klik på knappen Panik"/>
		<topic href="reference/panic_button.htm" label="Reference til knappen Panik"/>
	</context>
	...
</contexts>

Når konteksterne er beskrevet i XML-filen/filerne, kan du referere til kontekstfilerne i plugin-manifestet. Bemærk, at kontekst-id'en ovenfor ikke er fuldstændig kvalificeret. Det er tilladt, sålænge kontekstfilen leveres i manifestet til den plugin, der definerer kontekst-id'en. Med andre ord opløses kontekst-id'en i den plugin, som XML-filen har leveret.  

En plugin leverer kontekstfiler vha. udvidelsespunktet org.eclipse.help.contexts.   

   <extension point="org.eclipse.help.contexts">
      <contexts name="myContextHelp.xml"  />
</extension>

Du kan referere til kontekstfiler fra andre plugins ved at inkludere attributten plugin. Derved får du mulighed for at gruppere al dokumentation, inklusive den kontekstafhængige hjælp, i én plugin og referere til den fra grænsefladekodens plugin eller en anden relateret plugin.

   <extension point="org.eclipse.help.contexts">
      <contexts name="myContextHelp.xml" plugin="com.example.helpExample"  />
</extension>

Som det fremgår, har du megen fleksibilitet mht. at organisere kontekster i en eller flere filer, der er indeholdt i en eller flere plugins. Det vigtigste er dog, at kontekst-id'erne i filerne opløses korrekt. Hvis du ikke kvalificerer en kontekst-id fuldstændig, skal du levere kontekst-XML-filerne til den plugin, der erklærerkontekst-id'erne. Hvis du bruger fuldstændig kvalificerede kontekst-id'er i kontekst-XML-filen, har du fuld fleksibilitet på XML-filernes placering, og over hvilken plugin der leverer konteksterne.

Kontekstafhængig hjælp fra flere plugins

Et yderligere fleksibilitetsniveau er muligheden for at levere kontekstafhængig hjælp til den samme kontekst-id fra flere forskellige plugins. Dette er nyttigt, f.eks. hvis der er forskellige sæt dokumentations-plugins, der er/ikke er installeret i en brugers konfiguration. Derved kan hver enkelt dokumentations-plugin erklære sine kontekster individuelt. Slutbrugeren får vist indholdet af den flettede kontekstafhængige hjælp for alle plugins, der leverer kontekster til elementets id.

Bemærk, at den fuldstændig kvalificerede kontekst-id for elementet skal bruges, da ingen dokumentations-plugins erklærer kontekst.id'en. Når flere plugins leverer den kontekstafhængige hjælp for den samme kontekst-id, vises først det indhold, der er defineret i den plugin, som erklærer indholdet (grænseflade-plugin'en). Yderligere beskrivelser og link tilføjes i tilfældig rækkefølge.

Dynamisk indhold

Dynamisk indhold er tilgængeligt for konteksthjælp i form at filtre på emner til konteksthjælp. Du kan f.eks. ønske, at et link til et emne kun vises i konteksthjælpen, når der anvendes et bestemt styresystem.