Además de los archivos HTML estáticos presentes en doc.zip o en el sistema de archivos del directorio del conector, la ayuda puede visualizar documentos generados dinámicamente por el conector de documentación. Este conector debe contener código Java capaz de producir contenido que, de otro modo, el sistema de ayuda leería desde archivos estáticos. Si un conector añade una clase que implementa org.eclipse.help.IHelpContentProducer al sistema de ayuda mediante el punto de extensión org.eclipse.help.contentProducer, el sistema de ayuda llamará a getInputStream para cada documento al que se acceda desde este conector. Si eso provoca una corriente de entrada (InputStream) no nula, ésta se enviará al navegador para la visualización. Si IHelpContentProducer devuelve nulo, el sistema de ayuda tomará por omisión la búsqueda de un documento en doc.zip y en el directorio de conector.
Por ejemplo, una implementación de IHelpConentProducer como la siguiente:
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;
}
}
identificada por la extensión del archivo plugin.xml como:
<extension point="org.eclipse.help.contentProducer"
name="dynamicTopics"
id="my.company.doc.dynamicTopics">
<contentProducer producer="com.my.company.doc.DynamicTopics" />
</extension>
producirá un contenido de documento HTML para todas las referencias de documento que contengan la palabra "dynamic" en la vía de acceso o el nombre de archivo.
Un conector tiene libertad completa con respecto al método o infraestructura subyacente utilizada para producir el contenido. Sin embargo, debe garantizar que el contenido se genera en el lenguaje correcto y se codifica de forma que un navegador pueda visualizarlo. El método getInputStream recibe un entorno local utilizado por el usuario. Si no es capaz de suministrar contenido traducible, debe tomar por omisión el contenido del entorno local por omisión de la plataforma.