ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Helpによるヘルプ・システムの開発
12c(12.1.2)
E48092-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を終了します。standAloneModeパラメータは、OHJをJavaアプリケーションから起動している場合はfalseに設定する必要があります(それ以外の場合、ヘルプを閉じると、アプリケーションが終了します!)。

パラメータ:

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

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

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

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


13.3 ヘルプ・データの追加

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

ヘルプセット・ブック実装は、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オブジェクトを作成し、アプリケーションの起動時にヘルプ・データを追加する必要があります。この単一インスタンスの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オブジェクトを解放します。