Beskrive og pakke kontekstavhengig hjelpeinnhold

Innholdsavhengig hjelp beskrives ved å knytte kontekst-IDen som er deklarert i brukergrensesnittkoden, til en beskrivelse og liste over linker til beslektede emner i hjelpen.  Tilknytningene utføres i en XML-fil. For hver plugin-modul kan du opprette et ubegrenset antall XML-filer med konteksthjelptilknytninger. Beskrivelsene og linkene for hver enkelt kontekst-ID angis i <context>-elementer i XML-filen. Hvert kontekstelement kan ha et valgfritt <description>-element som beskriver brukergrensesnittobjektet, og et ubegrenset antall <topic>-elementer med link til dokumentasjonen.

Fra og med versjon 3.1 er det mulig å la kontekstelementer overstyre standardtittelen som presenterer konteksthjelpinformasjonen i Hjelp-visningen.

<contexts>
	<context id="panic_button" title="Panic Button Title">
		<description>This is the panic button.</description>
		<topic href="tasks/pushing_the_panic_button.htm" label="Pushing the panic button"/>
		<topic href="reference/panic_button.htm" label="Panic Button Reference"/>
	</context>
	...
</contexts>

Når konteksten er beskrevet i XML-filen (eller filene), kan du referere til kontekstfilene i plugin-manifestet. Merk at kontekst-IDen ovenfor ikke er fullstendig.  Dette er tillatt så lenge kontekstfilen oppgis i manifestet for plugin-modulen som definerte kontekst-IDen. Kontekst-IDen tilordnes med andre ord IDen for plugin-modulen som oppgav XML-filen.  

En plugin-modul oppgir kontekstfiler ved hjelp av utvidelsespunktet org.eclipse.help.contexts.  

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

Du kan referere til kontekstfiler fra andre plugin-moduler ved å bruke attributtet plugin.  Med dette attributtet kan du gruppere hele dokumentasjonen (inkludert innholdsavhengig hjelp) i en plugin-modul og referere til den fra plugin-modulen for brukergrensesnittkoden eller fra en annen beslektet plugin-modul.

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

Som du ser har du stor grad av fleksibilitet til å organisere konteksten i en eller flere filer som inngår i en eller flere plugin-moduler. Det viktigste er at kontekst-IDene i filene tilordnes på riktig måte. Hvis du ikke bruker fullstendig kvalifiserte kontekst-IDer, må du oppgi XML-filene for konteksten, i plugin-modulen som deklarerte kontekst-IDene.  Hvis du bruker fullstendig kvalifiserte kontekst-IDer i XML-filen for kontekst, har du full fleksibilitet når det gjelder plassering av XML-filene og hvilken plugin-modul som skal oppgi kontekst.

Kontekstavhengig hjelp fra flere plugin-moduler

Fleksibiliteten forbedres ytterligere ved at det er mulig å oppgi kontekstavhengig hjelp for samme kontekst-ID, fra ulike plugin-moduler. Dette er nyttig hvis det for eksempel er ulike sett med plugin-moduler for dokumentasjon som eventuelt er eller ikke er installert i en brukerkonfigurering.  Dermed kan hver plugin-modul for dokumentasjon deklarere konteksten fritt.  Sluttbrukeren vil se kontekstavhengig hjelp som er sammenslått for alle plugin-moduler med kontekst for widget-IDen.

Merk at her må den fullstendig kvalifiserte kontekst-IDen for widgeten brukes, siden ingen av plugin-modulene for dokumentasjon deklarerte kontekst-IDen. Når flere plugin-moduler oppgir kontekstavhengig hjelp for samme kontekst-ID, vises først innholdet som er definert i plugin-modulen som deklarerte konteksten (plugin-modul for brukergrensesnitt).  Øvrige beskrivelser og linker tilføyes i uspesifisert rekkefølge.

Dynamisk innhold

Dynamisk innhold er tilgjengelig for konteksthjelpen i form av filtre for linker i konteksthjelpemner. Du ønsker kanskje at en emnelink bare skal vises i konteksthjelpen når du kjører et bestemt operativsystem.