Die Hilfefunktion kann nicht nur statische HTML-Dateien darstellen, die sich in 'doc.zip' oder dem Dateisystem des Plug-in-Verzeichnisses befinden, sondern auch Dokumente, die über das Dokumentierungs-Plug-in dynamisch generiert werden. Ein solches Plug-in muss Java-Code enthalten, der in der Lage ist, Inhalte zu produzieren, die sonst von statischen Dateien der Hilfefunktion gelesen würden. Wenn eine Klasse, die 'org.eclipse.help.IHelpContentProducer' implementiert, durch ein Plug-in über den Ergänzungspunkt 'org.eclipse.help.contentProducer' zur Hilfefunktion ergänzt wird, so ruft die Hilfefunktion für jedes Dokument, auf das dieses Plug-in zugreift, die Methode 'getInputStream' auf. Wenn das zu einem InputStream führt, der nicht Null ist, so wird er zum Anzeigen an den Browser geschickt. Wenn 'IHelpContentProducer' den Wert Null zurückgibt, sucht die Hilfefunktion standardmäßig 'doc.zip' und das Plug-in-Verzeichnis nach dem Dokument ab.
So erstellt beispielsweise die folgende Implementierung von 'IHelpConentProducer':
package com.my.company.doc;
public class DynamicTopics implements IHelpContentProducer {
public InputStream getInputStream(
String pluginID,
String name,
Locale locale) {
if (name.indexOf("dynamic") >= 0)
return new ByteArrayInputStream(
("<html><body>Content generated "
+ new Date().toString()
+ ".</body></html>")
.getBytes());
else
return null;
}
}
, die in der Datei plugin.xml durch Erweiterung folgendermaßen identifiziert wird:
<extension point="org.eclipse.help.contentProducer"
name="dynamicTopics"
id="my.company.doc.dynamicTopics">
<contentProducer producer="com.my.company.doc.DynamicTopics" />
</extension>
Inhalt für HTML-Dokumente für alle Dokumentenverweise, deren Pfad oder Dateiname das Wort "dynamic" enthält.
Ein Plug-in hat völlige Freiheit in der Wahl der Methode oder des zugrundeliegenden Gerüsts, das zur Erstellung von Inhalt verwendet wird. Es sollte allerdings sicherstellen, dass der Inhalt in der richtigen Sprache erstellt wird und dass er für eine Anzeige in einem Browser codiert wird. Eine vom Benutzer verwendete Ländereinstellung wird in der Methode 'getInputStream' bereitgestellt. Wenn das Plug-in nicht in der Lage ist, übersetzbaren Inhalt zu liefern, sollte es standardmäßig den Inhalt der Standardländereinstellung der Plattform verwenden.