この章では、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
オブジェクトは、ヘルプ・コンテンツの集まり、すなわちブックをカプセル化します。
HelpSetブック実装は、「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
オブジェクトは、アプリケーションの起動時にインスタンスを1つだけ作成してヘルプ・データを追加してください。アプリケーション・セッションを通して、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オブジェクトを解放します。