ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Help開発者ガイド
11g リリース2(11.1.2.3.0)
B71911-01
  目次
目次

戻る
戻る
 
次へ
次へ
 

13 アプリケーションへのOHJの追加

この章では、OHJと製品アプリケーションの統合方法、Helpオブジェクトの構成および作成方法、ヘルプ・データの追加、タブの追加方法およびトピックの表示方法について説明します。

この章の構成は、次のとおりです。

13.1 アプリケーションへのOHJの追加について

アプリケーションにOHJを追加するための基本的な手順は次のとおりです。

  1. Helpオブジェクトを構成します。

  2. Helpオブジェクトを次の手順でヘルプ・コンテンツに移入します。

    • ヘルプ・データを表すBookオブジェクトを作成します。

    • BookオブジェクトをHelpオブジェクトに追加します。

  3. OHJナビゲータ・ウィンドウの表示メソッドおよびヘルプ・トピックの表示メソッドを実装します。

  4. 製品のライフサイクルの最後にHelpオブジェクトを破棄します。

13.2 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()

トピックの表示に使用されるHTMLBrowserコンポーネントとしてICEBrowserを含む、Helpオブジェクトのインスタンスを作成します。このコンストラクタでは、ヘルプ・システムに対し、追加されたブックのすべてのビューを1つのタブ・パネルに表示し、作成者定義のタブ・ラベルを無視して標準タブ・ラベルを採用するように指示します。

Help(boolean combineBooks, boolean useLabelInfo)

トピックの表示に使用されるHTMLBrowserコンポーネントとしてICEBrowserを含む、Helpオブジェクトのインスタンスを作成します。

パラメータ:

  • combineBooks: trueの場合、ヘルプ・システムに追加されたブックからのすべてのビューが1つのタブ・パネルに表示されます。falseの場合、ブックごとに個別のタブ・パネルが作成され、どのブックを表示するかをエンド・ユーザーが選択できます。

  • useLabelInfo: trueの場合、表示とビューのマージに作成者定義のラベル情報が使用されます。falseの場合、デフォルト・ラベルが使用されます。

Help(Class htmlBrowserClass, boolean combineBooks, boolean useLabelInfo)

指定されたHTMLBrowserコンポーネントをトピックの表示に使用する、Helpオブジェクトのインスタンスを作成します。ICEBrowserは、現在OHJで配布されている単なるHTMLBrowserサブクラスです。

パラメータ:

  • htmlBrowserClass: トピック表示コンポーネントとして使用するHTMLBrowserサブクラス。

  • combineBooks: trueの場合、ヘルプ・システムに追加されたブックからのすべてのビューが1つのタブ・パネルに表示されます。falseの場合、ブックごとに個別のタブ・パネルが作成され、どのブックを表示するかをエンド・ユーザーが選択できます。

  • useLabelInfo: trueの場合、表示とビューのマージに作成者定義のラベル情報が使用されます。falseの場合、デフォルト・ラベルが使用されます。

Help(Class htmlBrowserClass, boolean combineBooks, boolean useLabelInfo, boolean standAloneMode)

指定されたHTMLBrowserコンポーネントをトピックの表示に使用する、Helpオブジェクトのインスタンスを作成します。ICEBrowserは、現在OHJで配布されている単なるHTMLBrowserサブクラスです。このコンストラクタには、スタンドアロン・モードでOHJを実行できるようにする追加パラメータが含まれています。その場合、Helpオブジェクトは、ヘルプ・ウィンドウがすべて閉じられた後で(System.exitを使用して)JVMを終了します。OHJをJavaアプリケーションから起動する場合は、standAloneModeパラメータをfalseに設定してください(そうしないと、ヘルプを閉じるとアプリケーションが終了します)。

パラメータ:

  • htmlBrowserClass: トピック表示コンポーネントとして使用するHTMLBrowserサブクラス。

  • combineBooks: trueの場合、ヘルプ・システムに追加されたブックからのすべてのビューが1つのタブ・パネルに表示されます。falseの場合、ブックごとに個別のタブ・パネルが作成され、どのブックを表示するかをエンド・ユーザーが選択できます。

  • useLabelInfo: trueの場合、表示とビューのマージに作成者定義のラベル情報が使用されます。falseの場合、標準のデフォルト・ラベルが使用されます。

  • standAloneMode: trueの場合、ヘルプ・ウィンドウがすべて閉じられるとヘルプ・システムはJVMを終了します。OHJをJavaアプリケーションから起動する場合は、falseに設定してください。


13.3 ヘルプ・データの追加

Helpオブジェクトを作成した後、1つ以上のBookオブジェクトを追加する必要があります。Bookオブジェクトは、ヘルプ・コンテンツの集まり、すなわちブックをカプセル化します。

HelpSetブック実装は、「Oracle Helpのファイル形式」で説明されている推奨のOracle Helpファイル形式を処理します。このファイルには、ヘルプセット・ファイルが含まれます。ヘルプセット・ファイルは、ヘルプ・システムの特性を定義します。

ヘルプ・セットの追加方法およびその他のオプション機能について次の各項で説明します。

13.3.1 HelpSetの構成

表13-2に、HelpSet()コンストラクタを示します。

表13-2 HelpSet()コンストラクタ

コンストラクタ 説明

HelpSet(URL fileURL)

URLで指定される場所のヘルプセット・ファイルを使用してHelpSetオブジェクトを構成します。このコンストラクタは、ヘルプセット・ファイルの正確な場所がわかっている場合に使用します。

パラメータ:

  • fileURL – ヘルプセット・ファイルの正確な場所を指定するURL。

HelpSet(Class pathClass, String pathExtension)

このコンストラクタは、ヘルプセット・ファイルへのパスがアプリケーション実装を基準にした場所としてしかわからない場合に使用します。

パラメータ:

  • pathClass: アプリケーション・クラスの1つです。HelpSetオブジェクトは、このクラスの場所を使用してヘルプセット・ファイルの場所を判断します。

  • pathExtension: pathClassの場所を基準にしたヘルプセット・ファイルへのパス。このパラメータの値は、pathClassを含むディレクトリへの絶対パスの末尾に付加されます。結果として生成されるパスが、ヘルプセット・ファイルへのパスになります。


詳細は、oracle.help.library.helpset.HelpSetのAPIドキュメントを参照してください。

13.3.2 ヘルプへのブックの追加

HelpSetコンストラクタを使用してBookインスタンスを作成したら、そのBookHelpインスタンスに追加する必要があります。ヘルプにブックを追加するには、Helpインスタンスで次のメソッドを呼び出します。

表13-3 addBook()コンストラクタ

コンストラクタ 説明

addBook(Book book)

このメソッドでは、Bookインスタンスがヘルプ・システムに追加されます。Bookに含まれる作成者定義ビューがナビゲータ・ウィンドウに表示され、Bookからのトピックを表示できるようになります。

パラメータ:

  • book: ヘルプ・システムに追加するBookインスタンス。


13.4 「お気に入り」タブまたはカスタム・タブの追加

helpオブジェクトの構成後、ナビゲータ・ウィンドウを表示する前に、必要に応じて「お気に入り」タブまたはカスタム・タブを追加できます。

13.5 Helpオブジェクトをいつ作成するか

Helpオブジェクトは、アプリケーションの起動時にインスタンスを1つだけ作成してヘルプ・データを追加してください。アプリケーション・セッションを通して、Helpオブジェクトのこのインスタンスのみを使用します。ユーザーがアプリケーションでヘルプを要求するたびにそれ専用のHelpオブジェクトを作成するのは効率的ではありません。

13.6 ナビゲータ・ウィンドウの表示

HelpインスタンスにOHJナビゲータ・ウィンドウの表示を指示するには、showNavigatorWindow()メソッドを呼び出します。このメソッドのいくつかのバージョンには、指定したナビゲータ・タブ(「目次」「索引」「検索」など)が選択された状態でナビゲータ・ウィンドウを表示するための追加パラメータを受け取るものがあります。

表13-4 showNavigatorWindow()コンストラクタ

コンストラクタ 説明

showNavigatorWindow()

最初のブックの最初のタブが選択された状態でナビゲータ・ウィンドウを表示します。

パラメータ:

  • activeBook: ナビゲータ・ウィンドウの表示時に最初に表示されるナビゲータ・セットが関連付けられているBookオブジェクト。

showNavigatorWindow(Book activeBook)

指定されたブックに関連付けられているナビゲータ・セットが表示された状態でナビゲータ・ウィンドウを表示します。

パラメータ:

  • activeBook: ナビゲータ・ウィンドウの表示時に最初に表示されるナビゲータ・セットが関連付けられているBookオブジェクト。

showNavigatorWindow(Navigator activeNavigator)

指定されたナビゲータ・タブが選択された状態でナビゲータ・ウィンドウを表示します。このメソッドは、指定したブックの特定のナビゲータを表示する場合に使用します。

パラメータ:

  • activeNavigator: 最初に選択されたときに表示するナビゲータ。


13.7 トピックの表示

Helpインスタンスに特定のヘルプ・トピックの表示を指示するには、showTopic()メソッドを呼び出し、そのトピックのトピックIDとBookインスタンスを指定します。このメソッドの一部のバージョンでは、トピックの表示方法を指定する追加パラメータを指定します。

表13-5 showTopic()コンストラクタ

コンストラクタ 説明

showTopic(Book book, String topicID)

指定されたブックの指定されたトピックを現在表示されているトピック・ウィンドウに表示します。現在表示されているトピック・ウィンドウがない場合は、新しいトピック・ウィンドウがデフォルトのサイズと位置で作成されます。

パラメータ:

  • book: 表示するトピックが含まれるBook

  • topicID: 表示されるトピックの(そのブックのマップ・ファイルで定義されている)トピックID。

showTopic(Book book, String topicID, boolean alwaysCreate)

特定のブックの特定のトピックを表示します。alwaysCreatetrueの場合は、新しいウィンドウが必ず作成されます。falseの場合は、現在表示されているウィンドウがないときに、新しいウィンドウが作成されます。

パラメータ:

  • book: 表示するトピックが含まれるBook

  • topicID: 表示されるトピックのトピックID(ブックのマップ・ファイルで定義されています)。

  • alwaysCreate: trueの場合、常に新しいウィンドウが表示されます。falseの場合、ウィンドウがあればそれを再利用します。

showTopic(Book book, String topicID, boolean alwaysCreate, Point location, Dimension size)

特定のブックの特定のトピックを表示します。alwaysCreatetrueの場合は、新しいウィンドウが必ず作成されます。falseの場合は、現在表示されているウィンドウがないときに、新しいウィンドウが作成されます。トピック・ウィンドウの表示には、指定された位置とサイズが使用されます。

パラメータ:

  • book: 表示するトピックが含まれるBook

  • topicID: 表示されるトピックのトピックID(ブックのマップ・ファイルで定義されています)。

  • alwaysCreate: trueの場合、常に新しいウィンドウが表示されます。falseの場合、ウィンドウがあればそれを再利用します。

  • location: トピック・ウィンドウの位置。画面座標で指定します。

  • size: トピック・ウィンドウのサイズ。ピクセル単位で指定します。


13.7.1 TopicDisplayExceptionsのキャッチ

トピックを表示しようとしたときにエラーが発生すると、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"); 
}

13.8 Helpオブジェクトの破棄

Helpオブジェクトを破棄すると、OHJリソースが解放されます。ヘルプ・エンジンが不要になったら、Helpオブジェクトを破棄してください。一般に、この処理はユーザーがアプリケーション・セッションを終了したときに行います。破棄することで、Helpオブジェクトが使用していたすべてのファイルが閉じられ、メモリーが解放されます。Helpオブジェクトを破棄するには、dispose()メソッドを呼び出します。

表13-6 dispose()コンストラクタ

コンストラクタ 説明

dispose()

ヘルプ・システムを破棄します。このメソッドは、ヘルプ・システムによって使用されていたすべてのリソースを解放します。アプリケーションでは、ヘルプが不要になったときにこのメソッドを呼び出します。dispose()を呼び出した後にHelpオブジェクトのメソッドを呼び出さないでください。


dispose()メソッドは、OHJクラスが保持していたオブジェクトへのあらゆる参照を削除しますが、作成者がアプリケーション・コードで作成した、その他のアプリケーションからHelpオブジェクトへの参照は削除しません。

したがって、dispose()の呼出し後に、OHJオブジェクト(HelpオブジェクトまたはBookオブジェクト)へのすべての参照をアプリケーション・コードで削除する必要があります。そうすることで、Javaガベージ・コレクション・プロセスがOHJオブジェクトを解放します。