Dinamikus témakörök

A doc.zip fájlban vagy a bedolgozókönyvtár alatt lévő fájlrendszeren jelen lévő statikus HTML fájlokon kívül a súgó a dokumentáció bedolgozó által dinamikusan létrehozott dokumentumokat is meg tudja jeleníteni. Az ilyen bedolgozónak tartalmaznia kell Java kódra felkészített előállítási tartalmat, amelyet ellenkező esetben a súgórendszer egy statikus fájlból olvasna ki. Ha az org.eclipse.help.IHelpContentProducer elemet megvalósító osztályt az org.eclipse.help.contentProducer kiterjesztési pont segítségével biztosítja a bedolgozó a súgórendszernek, akkor a súgórendszer meghívja a getInputStream függvényt a bedolgozóból elért minden dokumentumhoz. Ha nem null InputStream elemet eredményez, akkor átadódik a böngészőnek megjelenítés érdekében. Ha az IHelpContentProdcuer nullát ad vissza, akkor a súgórendszer alapértelmezés szerint a doc.zip fájlban és a bedolgozókönyvtárban keresi a dokumentumot.

Tartalomelőállító példa

Az IHelpConentProducer egy megvalósítása például az alábbi lehet:

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;
}
}

a kiterjesztés által a plugin.xml fájlban azonosítva az alábbi módon:

<extension point="org.eclipse.help.contentProducer"
    name="dynamicTopics"
    id="my.company.doc.dynamicTopics">
    <contentProducer producer="com.my.company.doc.DynamicTopics" />
</extension>


egy HTML dokumentumtartalmat hoz létre az összes dokumentumhivatkozáshoz, amelyben megtalálható a "dinamikus" szó az elérési út vagy fájlnév részeként.

Megszorítások

A bedolgozó a metódus vagy az alapul szolgáló keretrendszer teljes szabadságával rendelkezik, amely létrehozza a tartalmat. Biztosítani kell, hogy a tartalom a megfelelő nyelven kerül létrehozásra és kódolásra, hogy a böngésző meg tudja jeleníteni.  A felhasználó által használt területi beállítások biztosítva vannak a getInputStream metódusnak.  Ha nem biztosítható fordítható tartalom, akkor ennek kell lennie a platform alapértelmezett területi beállításainak.