ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド
11gリリース1 (11.1.1.7.0)
B52029-11
  目次へ移動
目次

前
 
次
 

17 ヒント、メッセージおよびヘルプの表示

この章では、ADF Facesコンポーネントにヒントおよびメッセージを定義および表示する方法と、様々なレベルのヘルプ情報をユーザーに提供する方法を説明します。

この章では、次の項目について説明します。

17.1 ヒントおよびメッセージの表示の概要

ADF Facesでは、様々な方法でアプリケーションに情報テキストを表示できます。精巧なヘルプ・システムだけでなく、簡単なヒント・テキスト、検証および変換のヒント・テキストやエラー・メッセージも作成できます。

ADF Facesの多くのコンポーネントではshortDesc属性がサポートされており、この属性は大部分のコンポーネントで、ユーザーがコンポーネント上にカーソルを置いたときにヒント情報を表示します。図17-1に、ツールバー・ボタンに構成されたヒントを示します。ヒントの作成の詳細は、17.2項「コンポーネントのヒントの表示」を参照してください。

図17-1 情報を表示するヒント

情報を表示するヒント

ヒントと同様に、EditableValueHolderコンポーネント(inputTextコンポーネントまたは選択コンポーネントなど)も、検証および変換に使用されるヒントを表示できます。検証または変換を構成すると、デフォルトのヒントにより注意ウィンドウが自動的に表示されます(詳細は、第6章「入力の検証および変換」を参照してください)。たとえば、File Explorerアプリケーションでユーザーが「Help」 > 「Give Feedback」をクリックすると、カスタマ・サービスの担当者が連絡する日時を入力可能なダイアログが表示されます。inputDateコンポーネントにはコンバータが含まれているため、ユーザーがフィールドをクリックすると、図17-2に示すように、予想されるパターンを示すヒントが注意ウィンドウに表示されます。inputDateコンポーネントに最小値または最大値も構成されている場合は、その情報もヒントに表示されます。これらのヒントは、コンバータおよびバリデータにより自動的に表示されます。

図17-2 アタッチされている、メッセージを含むコンバータおよびバリデータ

コンバータおよびバリデータ内のメッセージ

ADF Facesでは、標準のJSFメッセージングAPIが使用されています。JSFでは、addMessage(java.lang.String clientId, FacesMessage message)メソッドを使用してFacesContextオブジェクトにFacesMessageインスタンスを追加できるようにすることで、メッセージング用の組込みのフレームワークがサポートされています。通常、作成されるメッセージは2種類です。1つは、コンポーネント・レベルのメッセージで、これはaddMessageメソッドに渡された任意のクライアントIDに基づいて特定のコンポーネントに関連付けられています。もう1つは、グローバル・レベルのメッセージで、これは、クライアントIDがaddMessageメソッドに渡されなかったため、コンポーネントに関連付けられていません。変換または検証がEditableValueHolderのADF Facesコンポーネントで失敗した場合、FacesMessagesオブジェクトがFacesContextインスタンスのメッセージ・キューに自動的に追加され、そのコンポーネントのIDが渡されます。これらのメッセージは、コンポーネントの注意ウィンドウに表示されます。ADF Facesコンポーネントには、独自のメッセージを表示できます。タグを追加する必要はありません。

たとえば、図17-2に表示されているフィールドにユーザーが不適切な日付を入力した場合、図17-3に示すようにエラー・メッセージが表示されます。エラー・メッセージは、ヒントともに注意ウィンドウに表示されることに注意してください。

図17-3 注意ウィンドウに表示されている検証および変換のエラー

注意ウィンドウにエラーが表示されています

ADF Facesコンポーネント以外にメッセージを表示する場合、または注意ウィンドウではなく、インラインでメッセージを表示する場合は、ADF Faces messageコンポーネントを使用します。

FacesMessagesコンポーネントのみでなく、documentタグも、すべてのグローバルなFacesMessagesオブジェクト(関連付けられているコンポーネントIDがない)の処理および表示を行います。コンポーネント・メッセージと同じように、表示するメッセージにタグを追加する必要はありません。グローバル・メッセージ(または3つ以上のコンポーネント・メッセージ)が作成されると、図17-4に示すように、キューのすべてのメッセージがポップアップ・ウィンドウに表示されます。

図17-4 documentにより表示されるグローバル・メッセージおよびコンポーネント・メッセージ

グローバル・メッセージおよびコンポーネント・メッセージ

ただし、ポップアップ・ウィンドウではなく、ページにメッセージを表示する場合は、ADF Faces messagesコンポーネントを使用できます。コンポーネントのヒントおよびメッセージ表示の詳細は、17.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。


ヒント:

ADF Facesには検証および変換用のメッセージがありますが、標準のJSFメッセージングAPIを使用して、キューにFacesMessagesオブジェクトを追加できます。追加すると、ADF Facesにより、メッセージ・レベルに基づいて、次のようなアイコンがメッセージとともに表示されます。

メッセージ・アイコン

コンポーネントごとに独自のメッセージを表示するかわりに、panelLabelAndMessageコンポーネントを使用してコンポーネントをグループ化し、1つの領域にメッセージを表示できます。コンポーネントをグループ化する必要がある場合に便利です。たとえば、File Explorerアプリケーションには、ユーザーが電話番号を入力するpanelLabelAndMessageコンポーネントが使用されています。電話番号入力フィールドは、実際には3つの別々のinputTextコンポーネントです。panelLabelAndMessageコンポーネントに、3つのinputTextコンポーネントがラップされています。それぞれに独自のラベルおよびメッセージを表示するかわりに、図17-3に示すように、3つのコンポーネントにはラベルとメッセージが1つずつあります。詳細は、17.4項「単一のラベルおよびメッセージを使用したコンポーネントのグループ化」を参照してください。

個々のコンポーネント・インスタンスのメッセージを構成するかわりに、アプリケーション全体で再利用可能な情報を提供する別々のヘルプ・システムを作成できます。ヘルプ情報は異なるタイプのプロバイダを使用して作成し、UIコンポーネントからヘルプ・テキストを参照します。次に、ADF Facesでサポートされている3つのタイプのヘルプを示します。

17.2 コンポーネントのヒントの表示

ADF Facesコンポーネントでは、ユーザーがコンポーネント上にマウスを置いた場合、shortDesc属性を使用してヒントが表示されます。入力コンポーネントでは、注意ウィンドウにヒントが表示されます。その他のコンポーネント・タイプでは、標準のヒント・ボックスにヒントが表示されます。このテキストは短くする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、17.5項「コンポーネントへのヘルプの表示」で説明されているように、ヘルプ・テキストの使用を検討してください。

図17-8に、inputTextコンポーネント上にフォーカスを置いたときの効果を示します。

図17-8 inputTextコンポーネントのヒント

ブラウザで表示したツールチップ

図17-9に、showDetailItemコンポーネントのヒントを示します。

図17-9 showDetailItemコンポーネントのヒント

コマンド・コンポーネントのヒント

コンポーネントにヒントを定義する手順:

  1. 構造ウィンドウで、ヒントを表示するコンポーネントを選択します。

  2. プロパティ・インスペクタで、「外観」セクションを開き、shortDesc属性に値を入力します。


    ヒント:

    80文字を超えると、ブラウザによってはヒントが切り捨てられてしまうため、値は80文字未満にする必要があります。


    使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第21章「ページの国際化およびローカライズ」を参照してください。

17.3 検証および変換用のヒントとエラー・メッセージの表示

バリデータおよびコンバータには、関連するフィールドがクリックされた際にユーザーに表示されるデフォルトのヒントがあります。コンバータの場合、ヒントは、使用する適切な書式をユーザーに示します。バリデータの場合、ヒントは有効な値を示すために使用されます。

たとえば、図17-10に示すように、File Explorerアプリケーションでは、ユーザーがカスタマ・サービスに連絡ページの日付入力フィールドをクリックすると、使用する正しい書式が示されたヒントが表示されます。

図17-10 組込みメッセージのあるバリデータおよびコンバータ

メッセージはコンバータ・パターンに基づいています

ADF Facesコンポーネントの値が検証に失敗した場合、またはコンバータで変換できない場合は、コンポーネントに結果のFacesMessageインスタンスが表示されます。

たとえば、図17-11に示されているように、コンバータのdateStyle属性に一致しない日付を入力すると、エラー・メッセージが表示されます。

図17-11 実行時の検証エラー

ブラウザに表示された検証エラー

デフォルトのバリデータおよびコンバータのヒントとエラー・メッセージをオーバーライドできます。ADF Facesの各バリデータおよびコンバータ・コンポーネントには、ユーザーに表示する詳細なメッセージの定義に使用できる属性があります。実際の属性は、バリデータまたはコンバータによって異なります。図17-12に、プロパティ・インスペクタに表示されているconvertDateTimeコンバータのメッセージをオーバーライドするために移入できる属性を示します。

図17-12 コンバータのメッセージ属性

convertDateTimeのメッセージ属性

注意ウィンドウにメッセージを表示しない場合は、messageコンポーネントを使用すると、メッセージがコンポーネントにインラインで表示されます。図17-13に、messageコンポーネントを使用してメッセージがどのように表示されるかを示します。

図17-13 messageコンポーネントを使用したメッセージのインラインでの表示

インラインで表示されたメッセージ

ADF FacesアプリケーションのJSFページでは、特にポップアップ・ウィンドウへのすべてのグローバル・メッセージ(コンポーネントに関連付けられていないメッセージ)の表示を処理するdocumentタグが使用されています。ただし、グローバル・メッセージをページに表示する場合は、messagesコンポーネントを使用します。


注意:

HTMLタグを使用してメッセージの書式を設定するには、メッセージを<html></html>タグで囲む必要があります。次に例を示します。

<html><b>error</b> message details</html>

エラー・メッセージでは、次のHTMLタグを使用できます。

  • <span>

  • <b>

  • <a>

  • <i>

  • <em>

  • <br>

  • <hr>

  • <li>

  • <ol>

  • <ul>

  • <p>

  • <tt>

  • <big>

  • <small>

  • <pre>


17.3.1 バリデータおよびコンバータのカスタム・メッセージの定義方法

デフォルトのバリデータおよびコンバータのメッセージをオーバーライドするには、異なるメッセージ属性に値を設定します。

バリデータまたはコンバータのメッセージを定義する手順:

  1. 構造ウィンドウで、エラー・メッセージを作成するコンバータまたはバリデータを選択します。


    注意:

    オーバーライドできるのは、ADF Facesコンポーネントのメッセージのみです。ADF Faces以外のコンポーネント(f:validatorコンポーネントなど)にメッセージを作成する場合は、messageコンポーネントを使用します。詳細は、17.3.3項「コンポーネントのメッセージをインラインで表示する方法」を参照してください。


  2. プロパティ・インスペクタで、「メッセージ」セクションを開き、メッセージを指定する属性の値を入力します。

    値には、{0}、{1}、{2}などのパラメータ・プレースホルダを使用して、動的コンテンツを含めることができます。たとえば、convertDateTimeコンバータのmessageDetailConvertDate属性には、次のパラメータが使用されます。

    • {0}: コンポーネントを識別するラベル

    • {1}: ユーザーによって入力される値

    • {2}: コンポーネントで想定される書式の例

    これらのパラメータを使用して、次のメッセージを作成できます。

    {1} is not using the correct date format. Please enter the date as follows: {2}. 
    

    エラー・メッセージは、図17-14のように表示されます。

    図17-14 実行時の詳細なメッセージ

    ブラウザに表示されたインラインの詳細なメッセージ

    ヒント:

    メッセージで使用されたパラメータを含むプロパティ・ヘルプを表示するには、ドロップダウン・メニューを使用します。


    使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第21章「ページの国際化およびローカライズ」を参照してください。


    注意:

    メッセージ・テキストは、FacesMessageオブジェクトの詳細なメッセージ用です。サマリー(メッセージの上部に表示されるテキスト)をオーバーライドする場合は、グローバルにのみ実行できます。詳細は、デフォルト・メッセージのグローバルなオーバーライドに関する必知事項を参照してください。


17.3.2 デフォルト・メッセージのグローバルなオーバーライドに関する必知事項

messageDetail[XYZ]属性を使用してコンポーネント・インスタンスごとにメッセージの文字列を変更するかわりに、文字列がすべてのインスタンスに表示されるようにグローバルにオーバーライドします。グローバルにオーバーライドするには、メッセージのキーおよび使用するメッセージ・テキストがコンテンツに含まれるメッセージ・バンドルを作成します。

メッセージ・バンドルは、変換用のリソース・バンドルを作成して使用するのと同じ方法で、Javaクラスまたはプロパティ・ファイルを使用して作成および使用します。手順および詳細は、第21章「ページの国際化およびローカライズ」を参照してください。

メッセージ・キーの情報は、付録B「コンバータおよびバリデータ・メッセージのメッセージ・キー」を参照してください。

17.3.3 コンポーネントのメッセージをインラインで表示する方法

コンポーネントで注意ウィンドウにメッセージを表示するかわりに、messageコンポーネントを使用して、ページにインラインでメッセージを表示できます。messageコンポーネントで正しいメッセージが表示されるようにするには、特定のコンポーネントと関連付けます。

コンポーネントのメッセージをインラインで表示する手順:

  1. 構造ウィンドウで、messagesコンポーネントを使用してメッセージを表示するコンポーネントを選択します。まだ設定されていない場合は、コンポーネントのIDを入力します。

  2. コンポーネント・パレットの「共通コンポーネント」パネルから、「メッセージ」をドラッグし、ページのメッセージを表示する場所にドロップします。

  3. ドロップダウン・メニューを使用してfor属性に「編集」を選択します。

  4. 「プロパティの編集」ダイアログで、messagesコンポーネントでメッセージを表示するコンポーネントを探します。IDの設定されているコンポーネントのみが有効な選択肢です。


    注意:

    表示されるメッセージ・アイコンとメッセージ・コンテンツは、FacesMessageオブジェクトの作成時に指定されたものに基づきます。messageコンポーネントにmessageTypeまたはmessage属性を設定すると、エラーが発生したかどうかに関係なく、実行時にmessageTypeまたはmessage属性の値が表示されます。これらの属性は、ページのレンダリング時に必ずコンテンツを表示する場合にのみ移入します。


17.3.4 グローバル・メッセージをインラインで表示する方法

グローバル・メッセージをページのポップアップ・ウィンドウに表示するかわりに、messagesコンポーネントを使用してインラインで表示します。

  1. コンポーネント・パレットの「共通コンポーネント」パネルから、「メッセージ」をドラッグし、メッセージを表示するページにドロップします。

  2. プロパティ・インスペクタで次の属性を設定します。

    • globalOnly: デフォルトでは、ADF Facesはグローバル・メッセージ(コンポーネントに関連付けられていないメッセージ)を表示し、次に個々のコンポーネントのメッセージを表示します。ボックスにグローバル・メッセージのみを表示する場合は、この属性をtrueに設定します。コンポーネント・メッセージは、関連付けられたコンポーネントに引き続き表示されます。

    • inline: ページの上部にメッセージを表示する場合にtrueに設定します。そうしない場合、メッセージはダイアログに表示されます。

17.4 単一のラベルおよびメッセージを使用したコンポーネントのグループ化

ADF Facesの入力および選択コンポーネントには、デフォルトで、ラベルおよびメッセージの表示用に組込みサポートが用意されています。コンポーネントをグループ化して単一のラベルを使用する場合は、panelLabelAndMessageコンポーネントを使用してコンポーネントをラップします。

たとえば、File Explorerアプリケーションでは、別々のinputTextコンポーネントを4つ(市外局番、市内局番、最後の4桁、および内線のそれぞれに1つずつ)使用して電話番号を収集します。単一のラベルが必要なため、4つのinputTextコンポーネントはpanelLabelAndMessageコンポーネントにラップされ、ラベルの値はそのコンポーネントに設定されます。ただし、内線の入力コンポーネントには追加のラベルが必要なため、outputTextコンポーネントが使用されます。例17-1に、panelLabelAndMessageコンポーネントのJSFコードを示します。

例17-1 単一のラベルおよびヘルプ・トピックの表示が可能なpanelLabelAndMessage

<af:panelLabelAndMessage labelAndAccessKey="#{explorerBundle['help.telephone']}"
                         helpTopicId="HELP_TELEPHONE_NUMBER"
                         labelStyle="vertical-align: top;  
                         padding-top: 0.2em;">
  <af:inputText autoTab="true" simple="true" maximumLength="3"
                columns="3">
    <af:convertNumber type="number" integerOnly="true"/>
  </af:inputText>
  <af:inputText autoTab="true" simple="true" maximumLength="3"
                columns="3">
    <af:convertNumber type="number" integerOnly="true"/>
  </af:inputText>
  <af:inputText autoTab="true" simple="true" maximumLength="4"
                columns="4">
    <af:convertNumber type="number" integerOnly="true"/>
  </af:inputText>
  <af:outputText value="#{explorerBundle['help.extension']}"/>
  <af:inputText simple="true" columns="4">
    <af:convertNumber type="number" integerOnly="true"/>
  </af:inputText>
</af:panelLabelAndMessage>

図17-15に、panelLabelAndMessageおよびネストしたコンポーネントがブラウザにどのように表示されるかを示します。

図17-15 panelLabelAndMessageコンポーネントの使用例

panelLabelAndMessageの使用例

panelLabelAndMessageコンポーネントには、グループの最後に追加のコンポーネントを表示するために使用できるEndファセットも含まれます。図17-16に、EndファセットにoutputTextコンポーネントが移入されている場合に、電話番号フィールドがどのように表示されるかを示します。

図17-16 panelLabelAndMessageコンポーネント内のEndファセット

Endファセットのテキスト

panelLabelAndMessageコンポーネント内にpanelGroupLayoutコンポーネントを使用して、必要なレイアウトのコンポーネントをグループ化します。panelGroupLayoutコンポーネントの使用方法の詳細は、8.13項「関連する項目のグループ化」を参照してください。

各入力コンポーネントでsimple属性をtrueに設定し、個々のラベルが表示されないようにします。ただし、メッセージ目的およびアクセシビリティ用の各コンポーネントのラベル属性に値を設定することが必要な場合があります。


ヒント:

複数のpanelLabelAndMessageコンポーネントを連続して使用する必要がある場合には、ラベルが適切に配置されるよう、af:panelFormLayoutコンポーネントにラップします。panelFormLayoutコンポーネントの使用方法の詳細は、8.7項「フォームでのコンテンツの配置」を参照してください。


panelLabelAndMessageコンポーネントを使用して、コンポーネントをグループ化してラップします。panelLabelAndMessageコンポーネントは、通常メッセージやラベルを表示するコンポーネントのみでなく、任意のコンポーネントのラップに使用できます。

単一のラベルおよびメッセージを使用してフォーム入力コンポーネントを配置する手順:

  1. 必要に応じて、入力コンポーネントまたは選択コンポーネントをページに追加します。

    各入力および選択コンポーネントに次の設定を行います。

    • simple属性をtrueに設定します。

    • アクセシビリティの理由から、label属性をコンポーネントのラベルに設定します。

  2. 構造ウィンドウで、手順1で作成した入力コンポーネントまたは選択コンポーネントを選択します。選択内容を右クリックし、「囲む」「パネル・ラベルとメッセージ」を選択します。

  3. panelLabelAndMessageコンポーネントが選択された状態で、プロパティ・インスペクタにおいて次の設定を行います。

    • label: コンポーネントのグループに表示するラベル・テキストを入力します。

    • for: ドロップダウン・メニューを使用して「編集」を選択します。「プロパティの編集」ダイアログで、子入力コンポーネントのIDを選択します。入力コンポーネントが複数ある場合は、最初のコンポーネントを選択します。

      アクセシビリティ要件に一致するように、for属性を最初のinputComponentに設定します。

    ネストした入力コンポーネントの1つ以上が必須コンポーネントで、これを示すためにマーカーを表示する場合は、showRequired属性をtrueに設定します。

  4. Endファセットにコンテンツを配置するには、必要なコンポーネントをファセットにドラッグ・アンド・ドロップします。

    ファセットに配置できる子コンポーネントは1つのみであるため、複数の子コンポーネントを追加する場合は、panelGroupLayoutまたはgroupコンポーネントなどのコンテナで子コンポーネントをラップする必要があります。


    ヒント:

    ファセットがビジュアル・エディタに表示されない場合は、次のようにします。

    1. 構造ウィンドウで、panelLabelAndMessageコンポーネントを右クリックします。

    2. ポップアップ・メニューから、「ファセット - パネル・ラベルおよびメッセージ」「facet name」を選択します。ページで使用されているファセットは、ファセット名の前にチェックマークが表示されます。


17.5 コンポーネントへのヘルプの表示

ADF Facesには、タイプの異なる3つのヘルプを作成および表示できるフレームワークが用意されており、そのコンテンツは、コンポーネントに構成されたテキストではなく、外部ソースから取得されます。コンテンツがコンポーネントに直接構成されず、複数のコンポーネントに使用できるため、ページ作成時間の節約になり、コンテンツが表示されるすべての場所ではなく、1箇所のコンテンツを変更することも可能です。

ADF Facesにより提供される1つ目のタイプの外部ヘルプは、定義ヘルプです。標準のヒント同様、コンテンツはメッセージ・ボックスに表示されます。ただし、ユーザーがコンポーネント上にマウスを置いた場合に表示されるのではなく、定義ヘルプではヘルプ・アイコン(疑問符が表示された青い丸)が表示されます。ユーザーがアイコン上にマウスを置くと、図17-17に示すようにコンテンツが表示されます。

図17-17 コンポーネントの定義テキスト

inputTextコンポーネントに表示されたヘルプ・テキスト

表17-1に、定義ヘルプがサポートされているコンポーネントを示します。

表17-1 定義ヘルプがサポートされているコンポーネント

サポートされているコンポーネント ヘルプ・アイコンの位置

すべての入力コンポーネント、選択コンポーネント、色の選択、日付の選択、問合せコンポーネント

ラベルの前。ラベルが存在しない場合は、フィールドの先頭。

メッセージが表示されたinputComponent


パネル・ヘッダー、パネル・ボックス、詳細の表示ヘッダー

ヘッダー・テキストの最後。

panelHeaderの定義


パネル・ウィンドウ、ダイアログ

ヘッダーの「閉じる」アイコンの隣。

右隅の「ヘルプ」アイコン

表およびツリーの列

ヘッダー・テキストの下。

列の定義



2つ目のタイプのヘルプは説明ヘルプです。説明ヘルプが表示される場所は、関連付けられているコンポーネントによって異なります。panelHeaderおよび検索パネル・コンポーネントでは、ヘッダー内に説明ヘルプが表示されます。図17-18に、図17-17に示されている、通常は定義ヘルプとして表示されるテキストが、panelHeaderコンポーネント内で説明ヘルプとしてどのように表示されるかを示します。

図17-18 panelHeaderの説明テキスト

定義ヘルプ

説明ヘルプがサポートされているその他すべてのコンポーネントでは、図17-19に示すように、注意ウィンドウにテキストが表示されます。ヘルプ・アイコンは表示されないことに注意してください。

図17-19 コンポーネントの説明テキスト

テキスト入力コンポーネントに表示された説明テキスト

表17-2に、説明ヘルプがサポートされているコンポーネントを示します。

表17-2 説明ヘルプがサポートされているコンポーネント

サポートされているコンポーネント ヘルプの位置

入力コンポーネント、色の選択、日付の選択、クイック問合せ

注意ウィンドウ(フォーカスがある場合のみ)

説明ヘルプが表示されたinputComponent


コンポーネントの選択

注意ウィンドウ(マウスが置かれている場合とフォーカスがある場合)

panelHeaderの定義


パネル・ヘッダー、パネル・ボックス、問合せ

ヘッダー・テキストの下のテキスト

説明ヘルプが表示されたpanelHeader



最後のタイプのヘルプは、外部URLヘルプです。外部アプリケーションのWebページへのURLを表示しておき、ヘルプ・アイコンがクリックされると、図17-20に示すように、別のブラウザ・ウィンドウでWebページが開かれます。ヘルプ・アイコンをクリックするかわりに、JavaScriptを使用し、クライアントベースのイベントに基づいてヘルプ・ウィンドウを開くことも可能です。

図17-20 外部URLヘルプ

外部URLヘルプ

ADF Facesには、様々なヘルプ・プロバイダがあります。ResourceBundleHelpProviderヘルプ・プロバイダを使用すると、ヘルプ・コンテンツを保持するリソース・バンドルを作成できます。ELHelpProviderヘルプ・プロバイダを使用すると、マップに変換されるXLIFFファイルの作成、またはヘルプ・テキスト文字列のマップが含まれるマネージドBeanの作成が可能です。異なるヘルプ・プロバイダを組み合せて使用することもできます。また、独自のヘルプ・プロバイダ・クラスの作成も可能です。

アプリケーションにヘルプを作成するには、次のようにします。

17.5.1 リソース・バンドルベースのヘルプの作成方法

標準のリソース・バンドル・プロパティ・ファイルにヘルプ・テキストを格納し、ResourceBundleHelpProviderクラスを使用してコンテンツを送信できます。

リソース・バンドルベースのヘルプを作成する手順:

  1. 各ヘルプ・トピックのトピックIDおよびヘルプ・テキストを含むプロパティ・ファイルを作成します。トピックIDには次の情報が含まれている必要があります。

    • RBHELPなど、プロバイダにより使用される接頭辞

    • TELEPHONE_NUMBERなどのトピック名

    • DEFINITIONなどのヘルプ・タイプ

    たとえば、トピックIDはRBHELP_TELEPHONE_NUMBER_DEFINITIONのようになります。


    注意:

    ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、AABおよびACの2つの接頭辞にヘルプ・プロバイダが登録されている場合、AABCAAAACACBという接頭辞はすべて無効で、登録時に例外がスローされます。ただし、AADABなどは有効です。

    UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例17-2を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。


    例17-2に、3つのトピックがあるリソース・バンドルの例を示します。

    例17-2 リソース・バンドル・ヘルプ

    RBHELP_CUST_SERVICE_EMAIL_DEFINITION=For security reasons, 
                         we strongly discourage the submission of credit card numbers.
    RBHELP_TELEPHONE_NUMBER_DEFINITION=We only support calling telephone numbers 
                                                    in the United States at this time.
    RBHELP_TELEPHONE_NUMBER_INSTRUCTIONS=Enter a telephone number.
    

    注意:

    外部URLのヘルプ・タイプを使用する場合は、ResourceBundleHelpProviderクラスのサブクラスを作成します。詳細は、手順3を参照してください。


  2. adf-settings.xmlファイルにヘルプ・プロバイダとしてリソース・バンドルを登録します(存在しない場合にadf-settings.xmlファイルを作成する方法の詳細は、A.5.1項「adf-settings.xmlでのADF Facesの構成方法」を参照してください)。

    プロバイダを登録するには、adf-settings.xmlファイルを開き、「ソース」タブをクリックして、次の要素を追加します。

    • <help-provider>: prefix属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。これは、アプリケーション内で一意であり、リソース・バンドルに使用されている接頭辞に一致する必要があります。


      注意:

      prefix属性がないか、空である場合、そのヘルプ・プロバイダは、特別なデフォルトのヘルプ・プロバイダとして登録されます。これは、その他のどのヘルプ・プロバイダとも一致しないヘルプ・トピックIDのヘルプの生成に使用されます。許可されるデフォルトのヘルプ・プロバイダは1つのみです。


    • <help-provider-class>: <help-provider>要素の子要素として作成し、oracle.adf.view.rich.help.ResourceBundleHelpProviderを入力します。

    • <property>: <help-provider>要素の子要素として作成します。プロパティは、実際のヘルプ・ソースを定義します。

    • <property-name>: <property>要素の子要素として作成し、baseNameなど、ソースの名前を入力します。

    • <value>: <property>要素の子要素として作成し、リソース・バンドルの完全修飾クラス名を入力します。たとえば、ADF Facesデモ・アプリケーションで使用されるリソース・バンドルの修飾クラス名はoracle.adfdemo.view.resource.DemoResourcesです。

    例17-3に、例17-2のリソース・バンドルが、adf-settings.xmlファイルにどのように登録されているかを示します。

    例17-3 ヘルプ・プロバイダとしてのリソース・バンドルの登録

    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
      <help-provider prefix="RBHELP_">
        <help-provider-class>
          oracle.adf.view.rich.help.ResourceBundleHelpProvider
        </help-provider-class>
        <property>
          <property-name>baseName</property-name>
          <value>oracle.adfdemo.view.resource.DemoResources</value>
        </property>
      </help-provider>
    </adf-faces-config>
    </adf-settings>
    
  3. 外部URLヘルプを使用する場合は、ResourceBundleHelpProviderクラスを拡張し、getExternalUrlメソッドも実装する必要があります。例17-4に、メソッドの例を示します。

    例17-4 getExternalURLメソッドのオーバーライド

    protected String getExternalUrl(FacesContext context, UIComponent component,
                                                                       String topicId)
      {
        if (topicId == null)
          return null;
        if (topicId.contains("TOPICID_ALL") ||
            topicId.contains("TOPICID_DEFN_URL") ||
            topicId.contains("TOPICID_INSTR_URL") ||
            topicId.contains("TOPICID_URL"))
          return http://www.myURL.com;
        else
          return null;
      }
    

    例17-4では、メソッドのすべてのトピックで同じURLが返されます。異なるURLを返すには、if文を個別に作成する必要があります。

    ヘルプ・アイコンからではなく、コンポーネントのクライアント・イベントに基づいて外部ウィンドウを起動する場合は、JavaScript関数を使用します。詳細は、17.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。

17.5.2 XLIFFベースのヘルプの作成方法

XLIFF XMLファイルにヘルプ・テキストを格納し、ELHelpProviderクラスを使用してコンテンツを送信できます。このクラスでは、XLIFFファイルが、ヘルプのテキストとして使用される文字列のマップに変換されます。

XLIFFヘルプを作成する手順:

  1. <body>タグ内に次の要素を使用して、ヘルプ・テキストを定義するXLIFFファイルを作成します。

    • <trans-unit>: トピックIDを入力します。これには、XLIFFHELP_CREDIT_CARD_DEFINITIONのように、接頭辞、トピック名およびヘルプ・タイプが含まれている必要があります。この例で、XLIFFHELPはXLIFFファイルへのアクセスに使用される接頭辞になります。CREDIT_CARDはトピック名で、DEFINITIONはヘルプ・タイプです。


      注意:

      ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、AABおよびACの2つの接頭辞にヘルプ・プロバイダが登録されている場合、AABCAAAACACBという接頭辞はすべて無効で、登録時に例外がスローされます。ただし、AADABなどは有効です。

      UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例17-5を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。


    • <source>: <trans-unit>要素の直接の子要素として作成し、ヘルプ・テキストを入力します。

    • <target>: <trans-unit>要素の直接の子要素として作成し、空白のままにします。これは翻訳済テキストを保持するために使用されます。

    • <note>: <trans-unit>要素の直接の子要素として作成し、ヘルプ・テキストの説明を入力します。

    例17-5に、2つのトピックを含むXLIFFファイルの例を示します。

    例17-5 XLIFFヘルプ

    <?xml version="1.0" encoding="UTF-8" ?>
    <xliff version="1.1" xmlns="urn:oasis:names:tc:xliff:document:1.1">
      <file source-language="en" original="this" datatype="xml">
        <body>
          <trans-unit id="XLIFF_CREDIT_CARD_DEFINITION">
            <source>Credit Card Definition</source>
            <target/>
            <note>Credit Card definition text.</note>
          </trans-unit>
          <trans-unit id="XLIFF_CREDIT_CARD_INSTRUCTIONS">
            <source>Credit Card Instructions</source>
            <target/>
            <note>Credit card instruction text.</note>
          </trans-unit>
        </body>
      </file>
    </xliff>
    
  2. adf-settings.xmlファイルにヘルプ・プロバイダとしてXLIFFを登録します(存在しない場合にadf-settings.xmlファイルを作成する方法の詳細は、A.5.1項「adf-settings.xmlでのADF Facesの構成方法」を参照してください)。

    プロバイダを登録するには、adf-settings.xmlファイルを開き、次の要素を追加します。

    • <help-provider>: prefix属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。これは、アプリケーション内で一意であり、XLIFFファイルに使用されている接頭辞に一致する必要があります。


      注意:

      prefix属性がないか、空である場合、そのヘルプ・プロバイダは、特別なデフォルトのヘルプ・プロバイダとして登録されます。これは、その他のどのヘルプ・プロバイダとも一致しないヘルプ・トピックIDのヘルプの生成に使用されます。許可されるデフォルトのヘルプ・プロバイダは1つのみです。


    • <help-provider-class>: <help-provider>要素の子要素として作成し、oracle.adf.view.rich.help.ELHelpProviderを入力します。

    • <property>: <help-provider>要素の子要素として作成します。プロパティ値は、実際のヘルプ・ソースを定義します。

    • <property-name>: <property>要素の子要素として作成し、helpSourceなど、ヘルプの名前を入力します。

    • <value>: <property>要素の子要素として作成し、#{adfBundle['project1xliff.view.Project1XliffBundle']}のように、adfBundle EL関数でラップされた、XLIFFファイルに解決されるEL式を入力します。

    例17-6に、例17-5のXLIFFファイルが、adf-settings.xmlファイルにどのように登録されているかを示します。

    例17-6 ヘルプ・プロバイダとしてのXLIFFファイルの登録

    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
      <help-provider prefix="XLIFF">
        <help-provider-class>
          oracle.adf.view.rich.help.ELHelpProvider
        </help-provider-class>
        <property>
          <property-name>helpSource</property-name>
          <value>#{adfBundle['project1xliff.view.Project1XliffBundle']}</value>
          </property>
        </help-provider>
      </adf-faces-config>
    </adf-settings>
    

17.5.3 マネージドBeanヘルプの作成方法

マネージドBeanヘルプを実装するには、ヘルプのテキストとして使用される文字列のマップを含むマネージドBeanを作成します。マネージドBeanヘルプ・プロバイダでは、ELHelpProviderクラスを使用してヘルプが送信されます。

マネージドBeanヘルプの作成方法:

  1. 文字列のマップを戻すマネージドBeanを作成しますが、例17-7に示すように、いずれもIDおよびヘルプ・トピックのコンテンツです。

    例17-7 ヘルプ・テキスト文字列のマップを戻すマネージドBean

    public class ELHelpProviderMapDemo
    {
      public ELHelpProviderMapDemo()
      {
      }
     
      /* To use the ELHelpProvider, the EL expression must point to a Map, otherwise
       * you will get a coerceToType error. */
    
      public Map<String, String> getHelpMap()
      {
        return _HELP_MAP;
      }
     
        static private final Map<String, String> _HELP_MAP = 
                                                        new HashMap<String, String>();
        static
        {
          _HELP_MAP.put("MAPHELP_CREDIT_CARD_DEFINITION", 
                                            "Map value for credit card definition");
          _HELP_MAP.put("MAPHELP_CREDIT_CARD_INSTRUCTIONS", 
                                            "Map value for credit card instructions");
          _HELP_MAP.put("MAPHELP_SHOPPING_DEFINITION", 
                                            "Map value for shopping definition");
          _HELP_MAP.put("MAPHELP_SHOPPING_INSTRUCTIONS", 
                                            "Map value for shopping instructions");
        }
     
    }
    

    最初の文字列は、MAPHELP_CREDIT_CARD_DEFINITIONのように、接頭辞、トピック名およびヘルプ・タイプが含まれている必要があります。この例で、MAPHELPはBeanへのアクセスに使用される接頭辞になります。CREDIT_CARDはトピック名で、DEFINITIONはヘルプ・タイプです。2つ目の文字列はヘルプ・テキストです。


    注意:

    ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、AABおよびACの2つの接頭辞にヘルプ・プロバイダが登録されている場合、AABCAAAACACBという接頭辞はすべて無効で、登録時に例外がスローされます。ただし、AADABなどは有効です。

    UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例17-7を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。



    注意:

    外部URLヘルプを使用する場合は、ELHelpProviderクラスのサブクラスを作成します。詳細は、手順4を参照してください。


  2. faces-config.xmlファイルにマネージドBeanを登録します。例17-8に、例17-7に示されていて、faces-config.xmlファイルに登録されているBeanを示します。

    例17-8 faces-config.xmlファイルでのマネージドBeanの登録

    <managed-bean>
      <managed-bean-name>helpTranslationMap</managed-bean-name>
        <managed-bean-class>
          oracle.adfdemo.view.webapp.ELHelpProviderMapDemo
        </managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
    

    マネージドBeanの使用および登録の詳細は、2.6項「マネージドBeanの作成と使用」を参照してください。

  3. adf-settings.xmlファイルにヘルプ・プロバイダとしてマネージドBeanを登録します(存在しない場合にadf-settings.xmlファイルを作成する方法の詳細は、A.5.1項「adf-settings.xmlでのADF Facesの構成方法」を参照してください)。

    プロバイダを登録するには、adf-settings.xmlファイルを開き、次の要素を追加します。

    • <help-provider>: prefix属性を作成および使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。アプリケーション内で一意であることが必要です。


      注意:

      prefix属性がないか、空である場合、そのヘルプ・プロバイダは、特別なデフォルトのヘルプ・プロバイダとして登録されます。これは、その他のどのヘルプ・プロバイダとも一致しないヘルプ・トピックIDのヘルプの生成に使用されます。許可されるデフォルトのヘルプ・プロバイダは1つのみです。


    • <help-provider-class>: <help-provider>要素の子要素として作成し、手順1で作成したクラスへの完全修飾クラス・パスを入力します。

    • <property>: <help-provider>要素の子要素として作成します。プロパティは、マネージドBeanのヘルプ文字列のマップを定義します。

    • <property-name>: <property>要素の子要素として作成し、helpSourceなど、プロパティ名を入力します。

    • <value>: <property>要素の子要素として作成し、マネージドBeanのヘルプ・マップに解決されるEL式を入力します。

    例17-9に、例17-8のBeanが、adf-settings.xmlファイルにどのように登録されているかを示します。

    例17-9 ヘルプ・プロバイダとしてのマネージドBeanの登録

    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
       <help-provider prefix="MAPHELP_">
       <help-provider-class>
         oracle.adf.view.rich.help.ELHelpProvider
       </help-provider-class>
       <property>
         <property-name>helpSource</property-name>
         <value>#{helpTranslationMap.helpMap}</value>
       </property>
     </help-provider>
     </adf-faces-config>
    </adf-settings>
    
  4. マネージドBeanプロバイダに外部URLヘルプを使用する場合は、ELHelpProviderクラスを拡張し、getExternalUrlメソッドを実装する必要があります。例17-10に、メソッドの例を示します。

    例17-10 getExternalURLメソッドのオーバーライド

    protected String getExternalUrl(FacesContext context, UIComponent component,
                                                                       String topicId)
      {
        if (topicId == null)
          return null;
        if (topicId.contains("TOPICID_ALL") ||
            topicId.contains("TOPICID_DEFN_URL") ||
            topicId.contains("TOPICID_INSTR_URL") ||
            topicId.contains("TOPICID_URL"))
          return http://www.myURL.com;
        else
          return null;
      }
    

    例17-10では、メソッドのすべてのトピックで同じURLが返されます。異なるURLを返すには、if文を個別に作成する必要があります。

    ヘルプ・アイコンからではなく、コンポーネントのクライアント・イベントに基づいて外部ウィンドウを起動する場合は、JavaScript関数を使用します。詳細は、17.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。

17.5.4 外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法

外部URLヘルプを使用する場合、デフォルトでは、ユーザーはヘルプ・アイコンをクリックしてヘルプ・ウィンドウを起動します。かわりに、特定のコンポーネントのイベントにJavaScriptとクライアント・イベント・リスナーを使用して、ヘルプ・ウィンドウを起動できます。

JavaScriptを使用して外部ヘルプ・ウィンドウを起動する手順:

  1. 特定のURLまたはページの起動に、launchHelp APIを使用するJavaScript関数を作成します。

    例17-11に、helpClient.jspxの起動に使用されるlaunchHelp関数を示します。

    例17-11 外部ヘルプ・ページを起動するためのJavaScript

    <af:resource type="javascript">
      function launchHelp(event)
        {
          AdfPage.PAGE.launchHelpWindow("helpClient.jspx");
        }
    </af:resource>
    
  2. 関数をコールするクライアント・イベントを含むコンポーネントをドラッグ・アンド・ドロップします。このコンポーネントのclientIdtrueに設定する必要があります。

  3. コンポーネント・パレットで、「操作」パネルから、手順2で作成したコンポーネントに、クライアント・リスナーを子としてドラッグ・アンド・ドロップします。手順1で作成した関数を起動するclientListenerを構成します。clientListenerタグの使用方法の詳細は、3.2項「クライアント・イベントのリスニング」を参照してください。

    例17-12に、helpClient.jspxページを起動するためにcommandToolbarButtonコンポーネントにクリック・イベントを設定する際に使用されるコードを示します。

    例17-12 外部ヘルプ・ウィンドウの起動に使用されるページ・コード

    <af:toolbar id="tb1">
      <af:commandToolbarButton text="Launch help window" id="ctb1"
                               icon="/images/happy_computer.gif">
        <af:clientListener method="launchHelp" type="click"/>
      </af:commandToolbarButton>
    </af:toolbar>
    <af:resource type="javascript">
      function launchHelp(event)
        {
          AdfPage.PAGE.launchHelpWindow("helpClient.jspx");
        }
    </af:resource>
    

17.5.5 Javaクラス・ヘルプ・プロバイダの作成方法

ADF Facesヘルプ・プロバイダのいずれかを使用するかわりに、独自のプロバイダを作成します。ヘルプ・プロバイダがアクセスして表示できるファイルに実際のテキストを作成します。Javaクラス・ヘルプ・プロバイダを作成するには、HelpProviderクラスを拡張します。このクラスの詳細は、ADF FacesのJavadocを参照してください。

Javaクラス・ヘルプ・プロバイダを作成する手順:

  1. oracle.adf.view.rich.help.HelpProviderを拡張するJavaクラスを作成します。

  2. パラメータなしでpublicコンストラクタを作成します。また、ヘルプ・トピックにアクセスして戻すロジックも実装する必要があります。

  3. このクラスは、このプロバイダの登録時にadf-settings.xmlファイルに設定されたプロパティおよび値にアクセスできます。たとえば、すべてのADF Facesプロバイダでは、プロパティを使用して、ヘルプ文字列の実際のソースが定義されます。adf-settings.xmlファイルのプロパティにアクセスするには、Stringであるプロパティを設定するメソッドを作成します。次に例を示します。

    public void setMyCustomProperty(String arg)
    
  4. プロバイダを登録するには、adf-settings.xmlファイルを開き、次の要素を追加します。

    • <help-provider>: prefix属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。アプリケーション内で一意であることが必要です。


      注意:

      prefix属性がないか、空である場合、そのヘルプ・プロバイダは、特別なデフォルトのヘルプ・プロバイダとして登録されます。これは、その他のどのヘルプ・プロバイダとも一致しないヘルプ・トピックIDのヘルプの生成に使用されます。許可されるデフォルトのヘルプ・プロバイダは1つのみです。ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、AABおよびACの2つの接頭辞にヘルプ・プロバイダが登録されている場合、AABCAAAACACBという接頭辞はすべて無効で、登録時に例外がスローされます。ただし、AADABなどは有効です。


    • <help-provider-class>: <help-provider>要素の子要素として作成し、手順1で作成したクラスへの完全修飾クラス・パスを入力します。

    • <property>: <help-provider>要素の子要素として作成し、手順3で作成したメソッドの引数として使用されるプロパティの定義に使用されます。

    • <property-name>: <property>要素の子要素として作成し、プロパティ名を入力します。

    • <value>: <property>要素の子要素として作成し、プロパティ値を入力します。

    例17-13に、adf-settings.xmlファイルに登録されているヘルプ・プロバイダ・クラスの例を示します。

    例17-13 ヘルプ・プロバイダ・クラスの登録

    <adf-settings xmlns="http://xmlns.oracle.com/adf/settings">
    <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings">
      <help-provider prefix="MYAPP">
        <help-provider-class>
          oracle.adfdemo.view.webapp.MyHelpProvider
        </help-provider-class>
        <property>
          <property-name>myCustomProperty</property-name>
          <value>someValue</value>
        </property>
      </help-provider>
    </adf-faces-config>
    </adf-settings>
    

17.5.6 UIコンポーネントからのヘルプ・コンテンツへのアクセス方法

コンポーネントのHelpTopicId属性を使用して、ヘルプへのアクセスおよび表示を行います。

コンポーネントからヘルプにアクセスする手順:

  1. 構造ウィンドウで、ヘルプを追加するコンポーネントを選択します。ヘルプがサポートされているコンポーネントのリストは、表17-1および表17-2を参照してください。

  2. プロパティ・インスペクタで、「外観」セクションを開き、helpTopicId属性に値を入力します。これには、適切なヘルプ・プロバイダおよびトピック名にアクセスする接頭辞が含まれている必要があります。次に示すように、その名前で登録されているすべてのヘルプ・タイプが戻されて表示されるため、ヘルプ・タイプは含めません。

    <af:inputText label="Credit Card" helpTopicId="XLIFF_CREDIT_CARD"/>
    

    この例では、例17-5のXLIFFファイルに定義されている定義ヘルプと説明ヘルプの両方が戻されます。

  3. ヘルプがサポートされていないコンポーネントにヘルプを表示する場合は、outputTextコンポーネントを追加してヘルプ・テキストを表示し、次のようにして、そのコンポーネントをヘルプ・プロバイダにバインドできます。

    <af:outputFormatted
     value="#{adfFacesContext.helpProvider['XLIFF_CREDIT_CARD'].instructions}"/>
    

    これは、説明ヘルプ・テキストにアクセスします。

17.5.7 異なるメッセージ・タイプの組合せに関する必知事項

検証および変換に関するメッセージを表示する入力コンポーネントにヘルプ・メッセージを追加すると、ADF Facesにより、注意ウィンドウ内に次の順序でメッセージが表示されます。

  1. 検証および変換のエラー・メッセージ。

  2. 検証および変換のヒント。

  3. 入力および選択コンポーネントの場合のみ、説明ヘルプ。panelHeaderコンポーネントの場合、説明ヘルプは常にヘッダーの下に表示されます。

  4. shortDesc属性の値。

図17-21に、コンバータ、説明ヘルプおよびヒント・メッセージを含むinputDateコンポーネントを示します。

図17-21 一度に表示されている異なるメッセージ・タイプ

異なるメッセージ・タイプが表示されています