Gli infopop vengono descritti associando l'ID di contesto dichiarato
nel codice dell'interfaccia utente a una descrizione e a un elenco di
collegamenti ad argomenti correlati della Guida in linea.
Tali associazioni vengono effettuate all'interno di un file XML.
Per ogni plug-in, è possibile creare il numero desiderato di file XML
contenenti associazioni di infopop. La descrizione e i collegamenti
relativi a ciascun ID di contesto vengono eseguiti in elementi
<context>
del file XML. Ogni elemento di questo tipo può disporre di un
elemento <description> opzionale, che viene utilizzato per
descrivere l'oggetto UI e qualsiasi numero di elementi <topic>
che contengono collegamenti alla documentazione in linea.
<contexts> <context id="panic_button"> <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>
Una volta effettuata la descrizione dei contesti nel file o nei file XML, è possibile fare riferimento ai file di contesto nel manifest di plug-in. Si noti che l'ID di contesto non è completo nell'esempio sopra riportato. Ciò è possibile se il file di contesto è fornito nel manifest del plug-in che ha definito l'ID di contesto. In altri termini, l'ID di contesto è risolto nell'ID del plug-in che ha fornito il file XML.
Un plug-in fornisce file di contesto mediante il punto di estensione org.eclipse.help.contexts.
<extension point="org.eclipse.help.contexts"> <contexts name="myInfopops.xml" /> </extension>
E possibile fare riferimento a file di contesto da altri plug-in includendo l'attributo plugin. Ciò consente di raccogliere e inserire l'intera documentazione, inclusi gli infopop, in un unico plug-in e fare riferimento ad esso dal plug-in del codice dell'interfaccia utente o da altri plug-in correlati.
<extension point="org.eclipse.help.contexts"> <contexts name="myInfopops.xml" plugin="com.example.helpExample" /> </extension>
Come risulta evidente, si dispone di un notevole margine di flessibilità nell'organizzazione degli infopop in uno o più file contenuti in uno o più plug-in. La considerazione principale in merito riguarda la corretta risoluzione degli ID di contesto nei file. Se non si assegna un nome completo a un ID di contesto, è necessario fornire i file XML nel plug-in che ha dichiarato gli ID di contesto. Se invece si utilizzano ID di contesto completi nel file XML di contesto, si dispone di piena libertà riguardo alla posizione dei file XML e ai plug-in che forniscono i contesti.
Si gode di un ampio margine di flessibilità anche riguardo alla possibilità di fornire infopop per lo stesso ID di contesto da plug-in differenti. Ciò risulta utile, ad esempio, se si dispone di più plug-in di documentazione che è possono o meno essere installati in una configurazione dell'utente. Ogni plug-in di documentazione può, infatti, dichiarare i propri contesti in maniera indipendente. L'utente finale visualizzerà l'insieme dei contenuti degli infopop di tutti i plug-in che hanno fornito i contesti per l'ID del widget.
Si noti che è necessario utilizzare l'ID di contesto completo del widget, poiché nessuno dei plug-in di documentazione ha dichiarato l'ID di contesto. Quando più plug-in forniscono infopop per lo stesso ID di contesto, il contenuto definito nel plug-in che ha dichiarato il contesto (il plug-in dell'interfaccia utente) viene visualizzato per primo. Le descrizioni e i collegamenti supplementari sono accodati in un ordine arbitrario.