この章では、OHJと製品アプリケーションの統合方法、Helpオブジェクトの構成および作成方法、ヘルプ・データの追加、タブの追加方法およびトピックの表示方法について説明します。
この章には次の項が含まれます:
アプリケーションにOHJを追加するための基本的な手順は次のとおりです。
Helpオブジェクトを構成します。
Helpオブジェクトを次の手順でヘルプ・コンテンツに移入します。
ヘルプ・データを表すBookオブジェクトを作成します。
BookオブジェクトをHelpオブジェクトに追加します。
OHJナビゲータ・ウィンドウの表示メソッドおよびヘルプ・トピックの表示メソッドを実装します。
製品のライフサイクルの最後にHelpオブジェクトを破棄します。
Helpオブジェクトは、Oracle Help for Javaの主なエントリ・ポイントになります。ヘルプ・コンテンツの追加、OHJナビゲータ・ウィンドウの表示、および特定のトピックの表示など行うためのメソッドが含まれています。Helpオブジェクトの構築時にのみ設定可能ないくつかのオプションがあります。
Helpオブジェクト・コンストラクタのboolean combineBooksパラメータは、複数のBook、すなわちHelpSetを表示する方法を指定します。boolean combineBooksパラメータをtrueに設定すると、タイプとラベルが同じ作成者定義のビューがすべてマージされます。たとえば、同じラベルのキーワードの索引ビューが複数のブックに含まれている場合、1つのキーワード・ナビゲータ・タブに、マージされソートされたキーワード・リストが表示されます。combineBooksパラメータがfalseに設定されると、各ブックのビューが個別に表示され、エンド・ユーザーは表示するブックをOHJナビゲータ・ウィンドウのドロップダウン・リストを使用して選択します。
次の表に、Helpオブジェクト・コンストラクタの各バージョンを示します。oracle.help.HelpのAPIドキュメントの詳細は、第12.3.2項「OHJDKリリースの内容」を参照してください。
表13-1 Help()コンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
トピックの表示に使用される |
|
|
トピックの表示に使用される パラメータ:
|
|
|
指定された パラメータ:
|
|
|
指定された パラメータ:
|
Helpオブジェクトを作成した後、1つ以上のBookオブジェクトを追加する必要があります。Bookオブジェクトは、ヘルプ・コンテンツの集まり、すなわちブックをカプセル化します。
ヘルプセット・ブック実装は、Oracle Helpファイル形式で説明するように、優先されるOracle Helpファイル形式を処理します。これらのファイルには、ヘルプ・システムの特徴を定義するヘルプセット・ファイルが含まれています。
ヘルプ・セットの追加方法およびその他のオプション機能について次の各項で説明します。
表13-2に、HelpSet()コンストラクタを示します。
表13-2 HelpSet()コンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
URLで指定される場所のヘルプセット・ファイルを使用して パラメータ:
|
|
|
このコンストラクタは、ヘルプセット・ファイルへのパスがアプリケーション実装を基準にした場所としてしかわからない場合に使用します。 パラメータ:
|
詳細は、oracle.help.library.helpset.HelpSetのAPIドキュメントを参照してください。
HelpSetコンストラクタを使用してBookインスタンスを作成したら、そのBookをHelpインスタンスに追加する必要があります。ヘルプにブックを追加するには、Helpインスタンスで次のメソッドを呼び出します。
helpオブジェクトの構成後、ナビゲータ・ウィンドウを表示する前に、必要に応じて「お気に入り」タブまたはカスタム・タブを追加できます。
「お気に入り」タブをナビゲータ・ウィンドウに追加するには、関数enableFavoritesNavigator(URL)を使用します。oracle.help.Help.enableFavoritesNavigator(URL)のAPIドキュメントの詳細は、第12.3.2項「OHJDKリリースの内容」を参照するか、例としてPreviewHelpSet.javaで次のコードを探します。
if (!"".equals(_favoritesPath))
{
try
{
File file = new File(_favoritesPath);
_help.enableFavoritesNavigator(file.toURL());
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
}
カスタム・タブを追加する場合は、第12.3.2項「OHJDKリリースの内容」のoracle.help.navigator.NavigatorのAPIドキュメントを参照してください。
単一インスタンスのHelpオブジェクトを作成し、アプリケーションの起動時にヘルプ・データを追加する必要があります。この単一インスタンスのHelpオブジェクトをアプリケーション・セッション全体で使用する必要があります。ユーザーがアプリケーションでヘルプをリクエストするたびに一意のHelpオブジェクトを作成する方法は効率的ではありません。
HelpインスタンスにOHJナビゲータ・ウィンドウの表示を指示するには、showNavigatorWindow()メソッドを呼び出します。このメソッドのいくつかのバージョンには、指定したナビゲータ・タブ(「目次」、「索引」、「検索」など)が選択された状態でナビゲータ・ウィンドウを表示するための追加パラメータを受け取るものがあります。
表13-4 showNavigatorWindow()コンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
最初のブックの最初のタブが選択された状態でナビゲータ・ウィンドウを表示します。 パラメータ:
|
|
|
指定されたブックに関連付けられているナビゲータ・セットが表示された状態でナビゲータ・ウィンドウを表示します。 パラメータ:
|
|
|
指定されたナビゲータ・タブが選択された状態でナビゲータ・ウィンドウを表示します。このメソッドは、指定したブックの特定のナビゲータを表示する場合に使用します。 パラメータ:
|
Helpインスタンスに特定のヘルプ・トピックの表示を指示するには、showTopic()メソッドを呼び出し、そのトピックのトピックIDとBookインスタンスを指定します。このメソッドの一部のバージョンでは、トピックの表示方法を指定する追加パラメータを指定します。
表13-5 showTopic()コンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
指定されたブックの指定されたトピックを現在表示されているトピック・ウィンドウに表示します。現在表示されているトピック・ウィンドウがない場合は、新しいトピック・ウィンドウがデフォルトのサイズと位置で作成されます。 パラメータ:
|
|
|
特定のブックの特定のトピックを表示します。 パラメータ:
|
|
|
特定のブックの特定のトピックを表示します。 パラメータ:
|
トピックを表示しようとしたときにエラーが発生すると、showTopic()メソッドにより例外がスローされます。たとえば、マップ・ファイルにないトピックIDを表示しようとすると、TopicDisplayExceptionがスローされます。TopicDisplayExceptionをキャッチすることで、エラーが発生したときの対処が可能になります。次の例では、TopicDisplayExceptionがスローされると、作成者定義のエラー・トピックが表示されます。
次に例を示します。
try
{
myHelp.showTopic(myhelpset, "nonExistingTopic");
}
catch (TopicDisplayException e)
{
//An error has occurred, try to show an error topic
myHelp.showTopic(myhelpset, "onErrorTopic");
}
Helpオブジェクトを破棄すると、OHJリソースが解放されます。ヘルプ・エンジンが不要になったら、Helpオブジェクトを破棄してください。一般に、この処理はユーザーがアプリケーション・セッションを終了したときに行います。破棄することで、Helpオブジェクトが使用していたすべてのファイルが閉じられ、メモリーが解放されます。Helpオブジェクトを破棄するには、dispose()メソッドを呼び出します。
表13-6 dispose()コンストラクタ
| コンストラクタ | 説明 |
|---|---|
|
|
ヘルプ・システムを破棄します。このメソッドは、ヘルプ・システムによって使用されていたすべてのリソースを解放します。アプリケーションでは、ヘルプが不要になったときにこのメソッドを呼び出します。 |
dispose()メソッドは、OHJクラスが保持していたオブジェクトへのあらゆる参照を削除しますが、作成者がアプリケーション・コードで作成した、その他のアプリケーションからHelpオブジェクトへの参照は削除しません。
したがって、dispose()の呼出し後に、OHJオブジェクト(HelpオブジェクトまたはBookオブジェクト)へのすべての参照をアプリケーション・コードで削除する必要があります。そうすることで、Javaガベージ・コレクション・プロセスがOHJオブジェクトを解放します。