動的なトピック

doc.zip にある静的 HTML ファイルやプラグイン・ディレクトリーのファイル・システム以外に、ヘルプには、文書プラグインで動的に生成される文書が表示されます。このようなプラグインには、他の場合はヘルプ・システムで静的ファイルから読み取られるコンテンツを作成することができる Java コードが含まれている必要があります。 プラグインによって、org.eclipse.help.IHelpContentProducer を実装するクラスが org.eclipse.help.contentProducer 拡張ポイントを使用してヘルプ・システムに提供される場合、ヘルプ・システムは、このプラグインからアクセスされているすべての文書に対して getInputStream を呼び出します。 この結果がヌル以外の InputStream になる場合は、ブラウザーに送信されて表示されます。 IHelpContentProdcuer がヌルを戻した場合、ヘルプ・システムは、doc.zip およびプラグイン・ディレクトリーでの文書の検索にデフォルトを設定します。

目次プロデューサーのサンプル

例えば、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;
}
}

plugin.xml ファイルの拡張により以下のように示されます。

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


パスまたはファイル名の一部に「dynamic」が付くすべての文書参照に対する HTML 文書の目次が作成されます。

制約

プラグインでは、コンテンツを作成するために使用されるメソッドや基本フレームワークのメソッドに対する制約はありません。 ただし、コンテンツが正しい言語で生成され、ブラウザーで表示できるようにエンコードされている必要があります。 ユーザーが使用するロケールは、getInputStream メソッドに指定されています。 変換可能なコンテンツを提供できない場合は、プラットフォームのデフォルト・ロケールのコンテンツにデフォルト設定されています。