Dynamiczne tematy

Oprócz statycznych plików HTML obecnych w pliku doc.zip lub w systemie plików w katalogu modułu dodatkowego, system pomocy może wyświetlać dokumenty generowane automatycznie przez moduł dodatkowy dokumentacji. Taki moduł dodatkowy musi zawierać kod Java generujący treść, która w innym przypadku musiałaby zostać odczytana przez system pomocy z plików statycznych. Jeśli klasa implementująca interfejs org.eclipse.help.IHelpContentProducer została dodana przez moduł dodatkowy do systemu pomocy przy użyciu punktu rozszerzenia org.eclipse.help.contentProducer, system pomocy wywoła metodę getInputStream dla każdego dokumentu, do którego uzyskano dostęp z tego modułu dodatkowego. Jeśli wynik będzie obiektem InputStream o wartości innej niż NULL, zostanie wysłany do przeglądarki w celu wyświetlenia. Jeśli obiekt typu IHelpContentProdcuer zwróci wartość NULL, system pomocy będzie domyślnie szukał dokumentu w pliku doc.zip i katalogu modułu dodatkowego.

Przykład producenta treści

Na przykład poniższa implementacja metody 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;
}
}

określona przez rozszerzenie w pliku plugin.xml w następujący sposób:

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


wygeneruje dokument HTML z treścią dla wszystkich odwołań do dokumentów zawierających słowo "dynamic" jako część ścieżki lub nazwy pliku.

Ograniczenia

Moduł dodatkowy ma całkowitą swobodę w zakresie metody oraz struktury bazowej używanych w celu generowania treści. Powinien jednak zapewnić wygenerowanie treści we właściwym języku oraz zakodowanej w taki sposób, aby przeglądarka mogła ją wyświetlić. Ustawienia narodowe, z których korzysta użytkownik, są udostępniane w metodzie getInputStream. Jeśli nie jest możliwe dostarczenie treści nadającej się do tłumaczenia, powinna zostać wygenerowana domyślna treść dla domyślnego ustawienia narodowego platformy.