プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Helpによるヘルプ・システムの開発
12c (12.2.1.1)
E77341-01
  目次へ移動
目次

前
 
次
 

14 アプリケーションでの状況依存ヘルプの有効化

この章では、アプリケーションで状況依存ヘルプを有効にする方法、およびヘルプ・トピックにトピックIDをマップする方法について説明します。

この章の内容は次のとおりです。

14.1 状況依存ヘルプについて

状況依存ヘルプ・トピックは、製品のユーザー・インタフェースのコンテキストに関連付けられいてそのコンテキストから起動できるヘルプ・トピックです。たとえば、状況依存ヘルプ・システムには、製品のメニューやダイアログ・ボックスについて説明するトピックを用意します。該当するコントロールのいずれかに関するヘルプをユーザーが要求すると、そのコントロールに関するトピックが表示されます。

Oracle Help for Javaには、ヘルプ・トピックをユーザー・インタフェース・コントロールに関連付けるメカニズム、およびユーザーが[F1]キーを押すか右クリックによるポップアップ・メニューで「ヘルプ」を選択すると起動される状況依存ヘルプのメカニズムが備えられています。また、OHJには、コンポーネントに関連付けられているヘルプ・トピックを明示的に表示するためのAPIも備えられています。

アプリケーションに状況依存ヘルプを備えるには、ヘルプ・システム・ソースに1つ以上のマップ・ファイルを含めて、適切なヘルプ・コードをアプリケーション・コードに追加する必要があります。

14.2 ヘルプ・トピックへのトピックIDのマップ

状況依存ヘルプ・システムには、トピックIDをヘルプ・トピックにマップするマップ・ファイルが1つ以上含まれていることが必要です。マップ・ファイルは、プログラマではなくヘルプ作成者によって作成されるのが理想的です。OHJでは、次の2種類のマップ・ファイルをサポートしています。

OHJシステムの実装にHelpSetが使用されている場合、マップ・ファイルとして、Oracle Helpシステムの推奨形式でもあるXMLファイル形式を使用することが必要です。マップ・ファイルの詳細は、第5.3項「マップ・ファイル」を参照してください。

マップ・ファイルのトピックIDにマップするJava定数のセットをアプリケーション・コードに定義する場合が考えられます。トピックIDを必要とするOHJメソッド(Help.showTopic()など)を使用する場合、マップ・ファイルに指定されている明示的なトピックIDを使用するかわりに、定数変数名を使用できます。このようにしておくと、マップ・ファイルのトピックIDが後で変更されたときにコードを何箇所も変更する必要がありません。ヘルプ作成者がマップ・ファイルの管理を担当している場合に特に便利です。

14.3 状況依存ヘルプをサポートするためのアプリケーションのプログラミング

標準のJavaツールキット(AWTおよびSwing)には、ヘルプ・トピックをコンポーネントに関連付ける組込みメカニズムがありません。一方、OHJには、状況依存ヘルプをJavaアプリケーションに実装するための汎用的な方法が用意されており、OHJ CSHManagerクラスを使用します。このヘルプ・マネージャを使用すると、ヘルプ・トピックをユーザー・インタフェース・コンポーネントに関連付けたり、[F1]キーおよび右クリックによる状況依存ヘルプを有効化できます。

14.4 CSHManagerを使用した状況依存ヘルプの実装

OHJのCSHManagerクラスは、ヘルプ・トピックをユーザー・インタフェース・コントロールに関連付けたり、エンド・ユーザーが[F1]キーを押したり右クリックによるポップアップ・メニューから「ヘルプ」を選択したときに状況依存ヘルプを起動するための、汎用的な方法です。また、OHJには、コンポーネントに関連付けられているヘルプ・トピックを明示的に表示するためのAPIも備えられています。

CSHManagerの使用の概要について次の各項で説明します。

14.4.1 CSHManagerコンストラクタ

ユーザー・インタフェース・コンポーネントを作成する前に、CSHManagerクラスのインスタンスを作成することが必要です。表14-1に、CSHManagerコンストラクタを示します。

表14-1 CSHManager()コンストラクタ

コンストラクタ 説明

CSHManager(Help help)

CSHManagerクラスの新しいインスタンスを作成します。以降のこのマネージャ・オブジェクトに対するすべての呼出しで、ここで指定されたHelpオブジェクトが使用されます。

パラメータ:

  • help: ヘルプの表示に使用されるHelpオブジェクト。


14.4.2 デフォルト・ブックの設定

ヘルプ・コンテンツのBookが1つしかない場合は、setDefaultBook()メソッドを使用してそれを状況依存ヘルプのデフォルトのブックとして定義します。これにより、addComponent()メソッドを呼び出すときにbookパラメータが不要になります。

表14-2 setDefaultBook()コンストラクタ

コンストラクタ 説明

setDefaultBook(Book book)

指定したBookをデフォルトのBookとして設定します。Book指定なしで登録されたコンポーネントの場合、これがデフォルトのBookとして使用されます。

パラメータ:

  • book: デフォルトとして設定するBook


複数のBookがある場合、特定のBookが割り当てられなかったコンポーネントについては、デフォルトのBookのみ使用されます。複数のBookによるヘルプ・システムでは、一般的に、コンポーネントに特定のBookを割り当てる必要があります。

14.4.3 トピックIDのユーザー・インタフェース・コンポーネントとの関連付け

マップ・ファイルに定義されているトピックIDをJavaユーザー・インタフェース・コンポーネントに関連付けるには、addComponent()メソッドを使用します。状況依存ヘルプが必要なコンポーネントごとに、このメソッドのいずれかのバージョンを呼び出します。

表14-3 addComponent()コンストラクタ

コンストラクタ 説明

addComponent(Component component, String topicId)

コンポーネントをヘルプ・マネージャに登録します。topicIdの検索にはデフォルトのBookが使用されます。このメソッドを呼び出したときにデフォルトのBookが登録されていない場合、コンポーネントはこのヘルプ・マネージャには登録されず、このコンポーネントに対して後でshowHelpForComponent()がコールされても、ヘルプは表示されません。このメソッドを使用して登録されたコンポーネントの場合、CSHManagerでは、[F1]キーを押したり右クリックしてもヘルプは表示されません。

パラメータ:

  • component: 追加するコンポーネント。

  • topicId: このコンポーネントに関連付けるトピックID。

addComponent(Component component, Book book, String topicId)

ヘルプ・マネージャにコンポーネントを登録します。topicIdの検索には指定したブックが使用されます。

このメソッドを使用して登録されたコンポーネントに対し、CSHManagerは[F1]キー押下イベントまたは右クリック・イベントに対してヘルプを表示しません。

パラメータ:

  • component: 追加するコンポーネント。

  • book: ヘルプ・トピックを含むブック。

  • topicId: このコンポーネントに関連付けるトピックID。

addComponent(Component component, String topicId, boolean needF1Help, boolean needPopupHelp)

topicIdの検索にデフォルトのBookが使用されます。このメソッドを呼び出したときにデフォルトのBookが登録されていない場合、コンポーネントはこのヘルプ・マネージャでは登録されず、このコンポーネントに対して後でshowHelpForComponent()が呼び出されても、ヘルプは表示されません。

パラメータ:

  • component: 追加するコンポーネント。

  • topicId: このコンポーネントに関連付けるトピックID。

  • needF1Help: trueの場合、[F1]キー押下イベントに対してこのコンポーネントのヘルプが表示されます。

  • needPopupHelp: trueの場合、マウスの右クリックに対して「ヘルプ」を含むポップアップ・メニューを表示し、「ヘルプ」メニュー項目が選択された場合に状況依存ヘルプを起動します。

addComponent(Component component, Book book, String topicId, boolean needF1Help, boolean needPopupHelp)

ヘルプ・マネージャにコンポーネントを登録します。topicIdの検索には指定したブックが使用されます。

パラメータ:

  • component: 追加するコンポーネント。

  • topicId: このコンポーネントに関連付けるトピックID。

  • needF1Help: trueの場合、[F1]キー押下イベントに対してこのコンポーネントのヘルプが表示されます。

  • needPopupHelp: trueの場合、マウスの右クリックに対して「ヘルプ」を含むポップアップ・メニューを表示し、「ヘルプ」メニュー項目が選択された場合に状況依存ヘルプを起動します。

  • needF1Help: trueの場合、[F1]キー押下イベントに対してこのコンポーネントのヘルプが表示されます。

  • needPopupHelp: trueの場合、マウスの右クリックに対して「ヘルプ」を含むポップアップ・メニューを表示し、「ヘルプ」メニュー項目が選択された場合に状況依存ヘルプを起動します。


14.4.4 コンポーネントのヘルプの明示的な表示

コンポーネントに関連付けられているヘルプ・トピックを明示的に表示する場合は、CSHManagerに対してshowHelpForComponent()メソッドを呼び出します。たとえば、ユーザーがダイアログ・ボックスで「ヘルプ」ボタンをクリックしたときに状況依存ヘルプを起動するには、ボタン・イベント・ハンドラでこのメソッドを呼び出します。

表14-4 showHelpForComponent()メソッド

コンストラクタ 説明

showHelpForComponent(Component component)

指定したコンポーネントのヘルプを表示します。指定したコンポーネントの登録にaddComponent()が使用されていない場合、ヘルプは表示されません。