shortDesc
属性を使用してヒントを表示する方法と、ADF Facesのコンポーネントに対するメッセージを表示する方法を説明します。この章では、ユーザーのために様々なレベルのヘルプ情報を提供する方法も説明します。
この章の内容は次のとおりです。
ADF Facesには、アプリケーションで情報テキストを表示する際に使用できる多くのコンポーネントが用意されています。たとえば、shortDesc属性を使用すると、ユーザがカーソルを置いたときにヒント情報を表示でき、inputTextコンポーネントを使用するとユーザーに対するポップアップ・メッセージを表示できます。
ADF Facesでは、様々な方法でアプリケーションに情報テキストを表示できます。精巧なヘルプ・システムだけでなく、簡単なヒント・テキスト、検証および変換のヒント・テキストやエラー・メッセージも作成できます。
図19-1 ADFメッセージング・コンポーネント
ADF Facesの多くのコンポーネントではshortDesc
属性がサポートされており、この属性は大部分のコンポーネントで、ユーザーがコンポーネント上にカーソルを置いたときにヒント情報を表示します。図19-2に、ツールバー・ボタンに構成されたヒントを示します。
図19-2 マウスを置いたときにヒントに情報が表示される
ヒントと同様に、ADF Facesのコンポーネントの中にも、たとえばinputText
コンポーネントや選択コンポーネントのように、ポップアップ・ヒント・メッセージや失敗メッセージを表示できるものがあり、検証や変換に使用されます。作成できるメッセージのタイプは2つあります。1つはコンポーネント・レベル・メッセージで、特定のコンポーネントに適用されます。もう1つはグローバル・レベル・メッセージで、特定のページに、またはコンポーネントのグループに適用されます。図19-3に示すヒント・メッセージは、入力日付フィールドに対して構成されています。
図19-3 ヒント・メッセージに入力日付のフォーマットを表示
個々のコンポーネント・インスタンスにメッセージを構成するとともに、アプリケーション全体で再利用可能な情報を提供する個別のヘルプ・システムを作成できます。ヘルプ情報はタイプの異なるプロバイダを使用して作成し、UIコンポーネントからヘルプ・テキストを参照します。次に、ADF Facesでサポートされている3つのタイプのヘルプを示します。
定義: 図19-4に示すように、ユーザーがアイコン上にマウスを置くと、ヘルプ・テキストが表示されるヘルプ・アイコン(疑問符が表示された青い丸)を表示します。
図19-4 アイコン上にマウスを置くと表示される定義メッセージ
説明: このタイプのヘルプはコンポーネントに応じて、(panelHeader
コンポーネントのように)コンポーネント内に説明テキストを表示するか、図19-5に示すように、ユーザーがコンポーネントをクリックした際に開かれる注意ウィンドウにテキストを表示します。テキストの長さの制限はありません。
図19-5 注意ウィンドウに表示されている説明メッセージ
外部URL: 別のブラウザ・ウィンドウで開く、外部アプリケーションに存在するヘルプ・トピックを作成できます。たとえば、図19-6では、説明ヘルプを表示するかわりに、スキンに関するヘルプ・トピックを開くよう構成された、スキン選択のselectOneChoice
コンポーネントが表示されています。ユーザーがselectOneChoice
コンポーネントをクリックすると、ヘルプ・トピックが開きます。
図19-6 新しいウィンドウに開かれている外部URLヘルプ
ヘルプ・システムの作成の詳細は、「コンポーネントへのヘルプの表示」を参照してください。
通常、メッセージは、アプリケーションでエラーが発生した場合(ユーザーが互換性のない情報を入力した場合など)に表示されるエラー・メッセージのタイプと、コンポーネントの使用やページでのタスクの完了に関するヒントなどを提供する情報メッセージのタイプに分けられます。
情報メッセージは、単純なツールチップから複雑なヘルプ・システムまで多岐にわたります。ヒントまたは情報を表示するコンポーネントでヘルプ・テキストがサポートされていない場合には、ツールチップを使用する必要があります。ただし、ツールチップ・テキストは簡潔にする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、ヘルプ・テキストの使用を検討してください。
ツールチップは、コンポーネントにshortDesc
属性を構成して作成します。これで、ユーザーがコンポーネントにカーソルを置くかコンポーネントをクリックしたときに(たとえばinputText
コンポーネントの場合)、その属性の値がノート・ウィンドウに表示されるようになります(図19-7を参照)。
図19-7 コンポーネントのツールチップ
ツールチップの詳細は、「コンポーネントのヒントの表示」を参照してください。
エラー・メッセージでは、JSFメッセージングAPIが使用されます。エラー・メッセージには、メッセージが特定コンポーネントにのみ当てはまるコンポーネント・メッセージと、複数のコンポーネントやページ全体に当てはまるグローバル・メッセージの2つのタイプがあります。
デフォルトでは、noteWindow
コンポーネントはコンポーネント・エラー・メッセージに使用されます。入力コンポーネントに変換や検証を構成すると、noteWindow
コンポーネントに、検証および変換のヒントやエラーが自動的に表示されます。ページにコンポーネントを追加する必要はありません。
たとえば、File Explorerアプリケーションでユーザーが「Help」 > 「Give Feedback」をクリックすると、カスタマ・サービスの担当者が連絡する日時を入力可能なダイアログが表示されます。inputDate
コンポーネントにはコンバータが含まれているため、ユーザーがフィールドをクリックすると、図19-8に示すように、予想されるパターンを示すヒントが注意ウィンドウに表示されます。inputDate
コンポーネントに最小値または最大値も構成されている場合は、その情報もヒントに表示されます。これらのヒントは、コンバータおよびバリデータにより自動的に表示されます。
図19-8 アタッチされている、メッセージを含むコンバータおよびバリデータ
図19-8に表示されているフィールドにユーザーが入力した日付が正しくない場合は、図19-9に示すようにエラー・メッセージが表示されます。エラー・メッセージは、ヒントともに注意ウィンドウに表示されることに注意してください。
図19-9 注意ウィンドウに表示されている検証および変換のエラー
ADF Facesコンポーネント以外にエラー・メッセージを表示する場合、または注意ウィンドウではなく、インラインでメッセージを表示する場合は、ADF Faces message
コンポーネントを使用します。このコンポーネントを使用するときは、メッセージはコンポーネントの隣に表示されます(図19-10を参照)。
図19-10 messageコンポーネントを使用したメッセージのインラインでの表示
グローバル・メッセージはデフォルトで、図19-11に示すように、ダイアログ内に表示されます。ページにポップアップ・コンポーネントを追加する必要はありません。
図19-11 ポップアップ・ウィンドウに表示されているグローバル・メッセージ
エラー・メッセージをページに直接表示する場合は、messages
コンポーネントを使用します。このコンポーネントを使用すると、図19-12に示すように、ページ上部のリストにメッセージが表示されます。
図19-12 messagesコンポーネントを使用した、ページへのグローバル・メッセージの表示
エラー・メッセージの詳細は、「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
ツールチップに収まる量を超える情報を表示する必要がある場合は、定義ヘルプを使用します。定義ヘルプを構成すると、大部分のコンポーネントで、そのコンポーネントの隣にヘルプ・アイコンが表示されます。図19-13に示すように、コンポーネント上にマウスが置かれると、ヘルプ・テキストが表示されます。
図19-13 列コンポーネントの定義ヘルプ
定義ヘルプの詳細は、「コンポーネントへのヘルプの表示」を参照してください。
フィールドレベル・ヘルプを表示する場合は、説明テキストを使用するように入力コンポーネントを構成します。ユーザーがコンポーネントをクリックすると、図19-14に示すように、注意ウィンドウにヘルプ・テキストが表示されます。
図19-14 コンポーネントの説明テキスト
タスクの説明を表示する場合は、コンテナ・コンポーネントに説明ヘルプを構成します。図19-15に示すように、コンポーネントのヘッダーにテキストが表示されます。
図19-15 panelHeaderコンポーネントの説明テキスト
ベスト・プラクティス:
入力コンポーネントの説明テキストは、説明なしでは、通常のユーザーがタスクに失敗する可能性がある場合にのみ使用します。説明テキストを多用すると、ページが指示で煩雑になったり、関連するページ要素が注意ウィンドウで見えにくくなり、ユーザーの注意が散漫になったりします。
複雑なヘルプを作成する必要がある場合は、ヘルプ・アイコンを使用して、URLを介してアクセス可能な外部ヘルプ・システムにリンクできます。
説明および外部ヘルプの詳細は、「コンポーネントへのヘルプの表示」を参照してください。
メッセージ・コンポーネントおよびヘルプ機能を実装する前に、ADF Facesのその他の機能を理解しておくと役に立ちます。また、ページにこれらのコンポーネントを追加してから、アイコンを変更するためのスキニング、アクセシビリティ、およびメッセージ・テキストを格納するためのリソース・バンドルの使用などの機能の追加が必要なことに気が付く場合もあります。次に、メッセージ・コンポーネントで使用できるその他の機能へのリンクを示します。
テキストでのパラメータの使用: コンポーネントに表示されるテキストに、実行時に解決されるパラメータを含める場合は、ADF Faces EL書式タグを使用できます。「EL書式タグの使用方法」を参照してください。
クライアント・イベント: JavaScriptを使用してヘルプ・トピックを起動する場合は、クライアント・イベントにリスナーを使用します。クライアント側イベントの詳細は、「ADF Facesクライアント・イベントに対するJavaScriptの使用」を参照してください。
スキニング: メッセージおよびヘルプに表示されるアイコンは、アプリケーションに使用されているスキンによって決まります。アイコンは、新しいスキンを作成することで変更できます。「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
ローカライゼーション: メッセージに直接テキストを入力するかわりに、プロパティ・ファイルを使用できます。これらのファイルにより、これらの文字列の翻訳を管理できます。「ページの国際化およびローカライズ」を参照してください。
ADF Facesのコンポーネントに用意されているshortDescを使用すると、ヒント、ノート、ポップアップ・メッセージなどで短いテキストを表示できます。このテキストは、ユーザーがinputTextコンポーネントにカーソルを置いたときに表示されます。
ADF Facesコンポーネントでは、ユーザーがコンポーネント上にマウスを置いた場合、shortDesc
属性を使用してヒントが表示されます。入力コンポーネントでは、注意ウィンドウにヒントが表示されます。その他のコンポーネント・タイプでは、標準のヒント・ボックスにヒントが表示されます。このテキストは短くする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、「コンポーネントへのヘルプの表示」で説明されているように、ヘルプ・テキストの使用を検討してください。
図19-16に、inputText
コンポーネント上にカーソルが置かれた際の様子を示します。
図19-16 inputTextコンポーネントのヒント
図19-17に、showDetailItem
コンポーネントに表示されたヒントを示します。
図19-17 showDetailItemコンポーネントのヒント
ヒントを表示するには、コンポーネントにshortDesc
属性を使用します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントのヒントの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントにヒントを定義する手順:
ADF Facesでは、ユーザーに値の検証を許可した場合、または値が変換される場合に、適切な値を使用するよう促すデフォルトのエラー・メッセージとヒントが表示されます。ただし、バリデータとコンバータのデフォルトのヒントとエラー・メッセージはオーバーライドできます。
バリデータおよびコンバータには、関連するフィールドがクリックされた際にユーザーに表示されるデフォルトのヒントがあります。デフォルトのヒントは自動的にノート・ウィンドウに表示されます。コンバータの場合、ヒントは、使用する適切な書式をユーザーに示します。バリデータの場合、ヒントは有効な値を示すために使用されます。
たとえば、図19-18に示すように、File Explorerアプリケーションでは、ユーザーが「カスタマ・サービスに連絡」ページの日付入力フィールドをクリックすると、使用する正しい書式が示されたヒントが表示されます。
注意:
入力フィールドに関するヒントはすべて、コンテキスト・パラメータoracle.adf.view.rich.component.DEFAULT_HINT_DISPLAY
をnoneに設定してオフにできます。デフォルトでは、このパラメータはautoに設定されており、コンポーネント・ヒントの表示モードはフレームワークで決定できるようになっています。デフォルトの動作では、コンポーネントがフォーカスを取得したときに、ノート・ウィンドウ・ヒントとして表示されます。図19-18 組込みメッセージのあるバリデータおよびコンバータ
ADF Facesコンポーネントの値が検証に失敗した場合、またはコンバータで変換できない場合は、コンポーネントに結果のFacesMessage
インスタンスが表示されます。
たとえば、図19-19に示されているように、コンバータのdateStyle
属性に一致しない日付を入力すると、エラー・メッセージが表示されます。
図19-19 実行時の検証エラー
デフォルトのバリデータおよびコンバータのヒントとエラー・メッセージを、1つのコンポーネント・インスタンスに対して、またはすべてのインスタンスに対してグローバルにオーバーライドできます。コンポーネント・インスタンスにカスタム・メッセージを定義するには、表示する詳細なメッセージに属性を設定します。実際の属性は、バリデータまたはコンバータによって異なります。図19-20に表示されている属性の値を入力すると、「プロパティ」ウィンドウに表示される、convertDateTime
コンバータのメッセージがオーバーライドされます。
コンポーネントのすべてのインスタンスで使用されるエラー・メッセージを定義するには、デフォルト・メッセージをオーバーライドするリソース・バンドルにエントリを作成する必要があります。
注意ウィンドウにメッセージを表示しない場合は、message
コンポーネントを使用すると、メッセージがコンポーネントにインラインで表示されます。図19-21に、message
コンポーネントを使用してメッセージがどのように表示されるかを示します。
図19-21 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>
単一のコンポーネント・インスタンスのデフォルトのバリデータおよびコンバータのメッセージをオーバーライドするには、異なるメッセージ属性に値を設定します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。「メッセージ・コンポーネントのその他の機能」を参照してください。
バリデータまたはコンバータのメッセージを定義する手順:
messageDetail[XYZ]
属性を使用してコンポーネント・インスタンスごとにメッセージの文字列を変更するかわりに、カスタム文字列がすべてのインスタンスに表示されるように文字列をグローバルにオーバーライドできます。グローバル・メッセージは、メッセージ・バンドルのキーと値のペアによって処理されます。サマリー、詳細およびヒント・メッセージをオーバーライドできます。
デフォルトのバリデータまたはコンバータのメッセージをグローバルにオーバーライドする手順:
コンポーネントで注意ウィンドウにメッセージを表示するかわりに、message
コンポーネントを使用して、ページにインラインでメッセージを表示できます。message
コンポーネントで正しいメッセージが表示されるようにするには、特定のコンポーネントと関連付けます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントのメッセージをインラインで表示する手順:
グローバル・メッセージをページのポップアップ・ウィンドウに表示するかわりに、messages
コンポーネントを使用してインラインで表示します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。「メッセージ・コンポーネントのその他の機能」を参照してください。
グローバル・メッセージをインラインで表示する手順:
ADF Facesでは、標準のJSFメッセージングAPIが使用されています。JSFでは、addMessage(java.lang.String clientId, FacesMessage message)
メソッドを使用してFacesContext
オブジェクトにFacesMessage
インスタンスを追加できるようにすることで、メッセージング用の組込みのフレームワークがサポートされています。コンポーネント・レベルのメッセージは、特定のコンポーネントに関連付けられます。この関連付けの基準になるのは、addMessage
メソッドに渡されたクライアントIDです。グローバル・レベルのメッセージには、コンポーネントは関連付けられません。addMessage
メソッドにクライアントIDは渡されないからです。
EditableValueHolder
ADF Facesコンポーネントで変換または検証が失敗すると、FacesContext
インスタンスのメッセージ・キューにFacesMessages
オブジェクトが自動的に追加され、コンポーネントのIDが渡されます。これらのメッセージは、コンポーネントの注意ウィンドウに表示されます。ADF Facesコンポーネントには、独自のメッセージを表示できます。タグを追加する必要はありません。
FacesMessages
コンポーネントのみでなく、document
タグも、すべてのグローバルなFacesMessages
オブジェクト(関連付けられているコンポーネントIDがない)の処理および表示を行います。コンポーネント・メッセージと同様に、メッセージを表示するために開発者がタグを追加する必要はありません。グローバル・メッセージ(または複数のコンポーネント・メッセージ)が作成されると、キュー内のすべてのメッセージがポップアップ・ウィンドウに表示されます(図19-23を参照)。
図19-23 documentにより表示されるグローバル・メッセージおよびコンポーネント・メッセージ
ヒント
ADF Facesには検証および変換用のメッセージがありますが、標準のJSFメッセージングAPIを使用して、キューにFacesMessages
オブジェクトを追加できます。追加すると、ADF Facesにより、メッセージ・レベルに基づいて、次のようなアイコンがメッセージとともに表示されます。
ADF Faces panelLabelAndMessageコンポーネントを使用すると、コンポーネントをグループ化して1つのラベルを使用できます。この属性を使用すれば、任意のコンポーネントをグループ化し、そのグループに1つのラベルを使用できます。
ADF Facesの入力および選択コンポーネントには、デフォルトで、ラベルおよびメッセージの表示用に組込みサポートが用意されています。コンポーネントをグループ化して単一のラベルを使用する場合は、panelLabelAndMessage
コンポーネントを使用してコンポーネントをラップします。
たとえば、File Explorerアプリケーションでは、別々のinputText
コンポーネントを4つ(市外局番、市内局番、最後の4桁、および内線のそれぞれに1つずつ)使用して電話番号を収集します。単一のラベルが必要なため、4つのinputText
コンポーネントはpanelLabelAndMessage
コンポーネントにラップされ、ラベルの値はそのコンポーネントに設定されます。ただし、内線の入力コンポーネントには追加のラベルが必要なため、outputText
コンポーネントが使用されます。次の例に、panelLabelAndMessage
コンポーネントのJSFコードを示します。
<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>
図19-24に、panelLabelAndMessage
およびネストしたコンポーネントがブラウザにどのように表示されるかを示します。
panelLabelAndMessage
コンポーネントには、グループの最後に追加のコンポーネントを表示するために使用できるEnd
ファセットも含まれます。図19-25に、End
ファセットにoutputText
コンポーネントが移入されている場合に、電話番号フィールドがどのように表示されるかを示します。
図19-25 panelLabelAndMessageコンポーネント内のEndファセット
panelLabelAndMessage
コンポーネント内にpanelGroupLayout
コンポーネントを使用して、必要なレイアウトのコンポーネントをグループ化します。panelGroupLayout
コンポーネントの使用方法の詳細は、「関連する項目のグループ化」を参照してください。
各入力コンポーネントでsimple
属性をtrue
に設定し、個々のラベルが表示されないようにします。ただし、メッセージ目的およびアクセシビリティ用の各コンポーネントのラベル属性に値を設定することが必要な場合があります。
ヒント
複数のpanelLabelAndMessage
コンポーネントを連続して使用する必要がある場合には、ラベルが適切に配置されるよう、af:panelFormLayout
コンポーネントにラップします。panelFormLayout
コンポーネントの使用方法の詳細は、「フォームでのコンテンツの配置」を参照してください。
panelLabelAndMessage
コンポーネントを使用して、コンポーネントをグループ化してラップします。panelLabelAndMessage
コンポーネントは、通常メッセージやラベルを表示するコンポーネントのみでなく、任意のコンポーネントのラップに使用できます。
コンポーネントをグループ化し、そのグループに単一のラベルを表示するには、panelLabelAndMessage
コンポーネントを使用します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「単一のラベルおよびメッセージを使用したコンポーネントのグループ化」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。「メッセージ・コンポーネントのその他の機能」を参照してください。
単一のラベルおよびメッセージを使用してフォーム入力コンポーネントを配置する手順:
必要に応じて、入力コンポーネントまたは選択コンポーネントをページに追加します。
各入力および選択コンポーネントに次の設定を行います。
simple
属性をtrue
に設定します。
アクセシビリティの理由から、label
属性をコンポーネントのラベルに設定します。
「構造」ウィンドウで、手順1で作成した入力または選択のコンポーネントを選択します。選択内容を右クリックし、「囲む」→「パネル・ラベルとメッセージ」を選択します。
panelLabelAndMessage
コンポーネントが選択されている状態で、「プロパティ」ウィンドウで次のとおりに設定します。
label: コンポーネントのグループに表示するラベル・テキストを入力します。
for: ドロップダウン・メニューを使用して「編集」を選択します。「プロパティの編集」ダイアログで、子入力コンポーネントのIDを選択します。入力コンポーネントが複数ある場合は、最初のコンポーネントを選択します。
アクセシビリティ要件に一致するように、for
属性を最初のinputComponent
に設定します。
ネストした入力コンポーネントの1つ以上が必須コンポーネントで、これを示すためにマーカーを表示する場合は、showRequired
属性をtrue
に設定します。
End
ファセットにコンテンツを配置するには、必要なコンポーネントをファセットにドラッグ・アンド・ドロップします。
JSPまたはJSPX上のファセットに配置できる子コンポーネントは1つのみであるため、複数の子コンポーネントを追加する場合は、子コンポーネントをコンテナ(たとえばpanelGroupLayout
またはgroup
コンポーネント)の内側にラップする必要があります。Faceletページ上のファセットには、複数のコンポーネントを配置できます。
ヒント
ファセットがビジュアル・エディタに表示されない場合は、次のようにします。
構造ウィンドウで、panelLabelAndMessage
コンポーネントを右クリックします。
ポップアップ・メニューから、「ファセット - パネル・ラベルおよびメッセージ」→「facet name」を選択します。ページで使用されているファセットは、ファセット名の前にチェックマークが表示されます。
ADF Facesでは、ヘルプ・メッセージの表示形式を説明ヘルプ、定義ヘルプおよび外部URLヘルプの3つで表示できます。外部ソースからのヘルプ・テキストが表示されます。
ADF Facesには、タイプの異なる3つのヘルプを作成および表示できるフレームワークが用意されており、そのコンテンツは、コンポーネントに構成されたテキストではなく、外部ソースから取得されます。コンテンツがコンポーネントに直接構成されず、複数のコンポーネントに使用できるため、ページ作成時間の節約になり、コンテンツが表示されるすべての場所ではなく、1箇所のコンテンツを変更することも可能です。
ヘルプ・メッセージの表示形式は、説明ヘルプ、定義ヘルプおよび外部URLヘルプの3つがあります。
説明ヘルプ
説明ヘルプとは、フォーカスがコンポーネントにあるときにヘルプ・テキストをノート・ウィンドウに表示するものです。図19-26に、ノート・ウィンドウに表示されているヘルプ・メッセージを示します。
図19-26 コンポーネントの説明テキスト
通常、説明ヘルプはそのコンポーネントの使用方法を説明するために使用します。HTMLタグを使用してヘルプ・メッセージの書式を設定することもできますが、すべてのHTMLタグがサポートされているわけではありません(サポートされるHTMLタグについては、af:outputFormatted
コンポーネントのタグの説明を参照してください)。図19-27に、ノート・ウィンドウに表示されているHTML書式設定されたヘルプ・メッセージを示します。
図19-27 HTML書式設定された説明ヘルプ
コンポーネントによっては、説明ヘルプがコンポーネント内の説明として表示されることがあります。説明ヘルプが表示される場所は、関連付けられているコンポーネントによって異なります。たとえば、panelHeader
コンポーネントや検索パネル・コンポーネントでは説明ヘルプがヘッダーの中に表示されます(図19-28を参照)。
図19-28 panelHeaderの説明テキスト
表19-1に、説明ヘルプがサポートされているコンポーネントを示します。
表19-1 説明ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプの位置 | 例 |
---|---|---|
入力コンポーネント、色の選択、日付の選択、クイック問合せ |
注意ウィンドウ(フォーカスがある場合のみ) |
![]() |
コンポーネントの選択 |
注意ウィンドウ(マウスが置かれている場合とフォーカスがある場合) |
![]() |
パネル・ヘッダー、パネル・ボックス、問合せ |
ヘッダー・テキストの下のテキスト |
![]() |
定義ヘルプ
定義ヘルプは、メッセージ・ボックスに表示される点が標準のヒントに似ています。ただし、ユーザーがコンポーネント上にマウスを置いたときにヘルプそのものが表示されるのではなく、定義ヘルプの場合はヘルプ・アイコン(疑問符付きの青い円)が表示されます。または、テキストの下に点線を表示させるかわりにスキニング属性を使用することができます(「スキニングおよび定義ヘルプに関する必知事項」を参照してください)。ユーザーがこのアイコンにマウスを置くと、コンテンツが図19-29のように表示されます。
図19-29 コンポーネントの定義テキスト
ヒント・メッセージではHTMLの書式設定がサポートされないことと、ヒント・メッセージの長さは80文字未満でなければならないことに注意してください。古いバージョンのブラウザでは、長いメッセージがサポートされないことがあるからです。表19-2に、定義ヘルプがサポートされるコンポーネントを示します。
表19-2 定義ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプ・アイコンの位置 | 例 |
---|---|---|
すべての入力コンポーネント、選択コンポーネント、色の選択、日付の選択、問合せコンポーネント |
ラベルの前。ラベルが存在しない場合は、フィールドの先頭。 |
![]() |
パネル・ヘッダー、パネル・ボックス、詳細の表示ヘッダー |
ヘッダー・テキストの最後。 |
![]() |
パネル・ウィンドウ、ダイアログ |
ヘッダーの「閉じる」アイコンの隣。 |
![]() |
表およびツリーの列 |
ヘッダー・テキストの下 |
![]() |
外部URLヘルプ
外部URLヘルプを利用すると、ヘルプのコンテンツが掲載されている既存のWebページにリンクすることができます。ヘルプ・アイコンがクリックされると、Webページが別のブラウザ・ウィンドウで開きます(図19-30を参照)。JavaScriptを使用して、任意のクライアント・ベースのイベントに基づいてヘルプ・ウィンドウを開くこともできます。
図19-30 外部URLヘルプ
JavaScriptを使用して、ヘルプ・アイコンではなく外部ヘルプを開く方法の詳細は、「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
ヘルプ・プロバイダ
ヘルプ・プロバイダとは、アプリケーションのヘルプのテキスト(外部ヘルプの場合はURL)を格納するものであり、META-INF/adf-settings.xml
ファイル内で登録されます。ADF Facesでは、次に示すヘルプ・プロバイダが説明ヘルプおよび定義ヘルプに対してサポートされます。
ResourceBundleHelpProvider
ヘルプ・プロバイダを使用すると、ヘルプ・コンテンツを保持するリソース・バンドルを作成できます。
ELHelpProvider
ヘルプ・プロバイダを使用すると、マップに変換されるXLIFFファイルを作成できます。
ヘルプ・テキストの文字列のマップが格納されているマネージドBean。
外部URLヘルプでは、getExternalURL
メソッドを実装するクラスが使用されます。
ヘルプ・プロバイダの作成の詳細は、「ヘルプ・プロバイダの作成方法」を参照してください。
複数のヘルプ・プロバイダの組合せを使用することや、独自のヘルプ・プロバイダ・クラスを作成することもできます。
ヘルプの作成
ヘルプ・メッセージを作成するには、次の手順を実行します。
説明ヘルプおよび定義ヘルプの場合は、使用するヘルプ・プロバイダのタイプ(リソース・バンドル、XLIFFファイルまたはマネージドBean)を決定してから、必要なアーティファクトを実装します。このヘルプ・プロバイダに実際のヘルプ・テキストが格納されます。「ヘルプ・プロバイダの作成方法」を参照してください。
外部ヘルプの場合は、外部コンテンツへのURLが格納される外部ヘルプ・プロバイダを作成する必要があります。「外部URLヘルプ・プロバイダを作成する方法」を参照してください。
ヘルプ・プロバイダを登録し、一意の接頭辞を指定します。この接頭辞は、このプロバイダのヘルプへのアクセスに使用されます。「ヘルプ・プロバイダの登録方法」を参照してください。
コンポーネントのhelpTopicId
属性を使用して、UIコンポーネントがプロバイダに含まれるヘルプにアクセスできるようにします。helpTopicId
属性には、次の情報が格納されます。
ヘルプ・プロバイダにより使用される接頭辞
トピック名
「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
外部URLヘルプの場合は、ユーザーがヘルプ・アイコンをクリックしたときではなく、イベントへの応答としてヘルプ・ウィンドウを起動することもできます。「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
ヘルプ・プロバイダの作成手順は、作成するヘルプ・プロバイダのタイプによって異なります。説明ヘルプおよび定義ヘルプの場合は、リソース・バンドル、XLIFF
ファイルまたはマネージドBeanを使用できます。外部URLヘルプの場合は、Javaクラスを作成します。カスタム・ヘルプ・プロバイダを作成することもできます。
ResourceBundleHelpProvider
クラスによって、基本的なHelpProvider
インスタンスが作成されます。標準のリソース・バンドル・プロパティ・ファイルにヘルプ・テキストを格納し、ResourceBundleHelpProvider
クラスを使用してコンテンツを送信できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
リソース・バンドルベースのヘルプを作成する手順:
XLIFF XMLファイルにヘルプ・テキストを格納し、ELHelpProvider
クラスを使用してコンテンツを送信できます。このクラスでは、XLIFFファイルが、ヘルプのテキストとして使用される文字列のマップに変換されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
XLIFFヘルプを作成する手順:
マネージドBeanプロバイダを実装するには、マネージドBeanを作成し、ヘルプのテキストとして使用される文字列のマップをその中に格納します。マネージドBeanヘルプ・プロバイダでは、ELHelpProvider
クラスを使用してヘルプが送信されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
マネージドBeanヘルプの作成方法:
外部URLをヘルプとして使用するには、getExternalURL
メソッドを実装する必要があります。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
外部URLヘルプを使用するには
ADF Facesヘルプ・プロバイダのいずれかを使用するかわりに、独自のプロバイダを作成します。ヘルプ・プロバイダがアクセスして表示できるファイルに実際のテキストを作成します。Javaクラス・ヘルプ・プロバイダを作成するには、HelpProvider
クラスを拡張します。このクラスの詳細は、Oracle ADF Faces Java APIリファレンスを参照してください。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
Javaクラス・ヘルプ・プロバイダを作成する手順:
リソース、XLIFFおよびマネージドBeanのヘルプ・プロバイダ、および外部URLヘルプ・プロバイダの登録はadf-settings.xml
ファイル内で行います。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
ヘルプ・プロバイダを登録するには:
次の例に、adf-settings.xml
ファイル内で登録されているリソース・バンドルを示します。
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings"> <help-provider prefix="HELP_"> <help-provider-class> oracle.adf.view.rich.help.ResourceBundleHelpProvider </help-provider-class> <property> <property-name>baseName</property-name> <value>oracle.adfdemo.view.resource.fileExplorer.helpStrings</value> </property> </help-provider> </adf-faces-config> </adf-settings>
次の例に、adf-settings.xml
ファイル内で登録されているXLIFFファイルを示します。
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings"> <help-provider prefix="HELP"> <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>
次の例に、adf-settings.xml
ファイル内で登録されているBeanを示します。
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings"> <help-provider prefix="HELP_"> <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>
次の例に、adf-settings.xml
ファイル内で登録されている外部ヘルプ・プロバイダを示します。
<adf-settings xmlns="http://xmlns.oracle.com/adf/settings"> <adf-faces-config xmlns="http://xmlns.oracle.com/adf/faces/settings"> <help-provider prefix="HELP_"> <help-provider-class> oracle.adf.view.rich.help.ResourceBundleHelpProvider </help-provider-class> <property> <property-name>baseName</property-name> <value>oracle.adfdemo.view.resource.DemoHelp</value> </property> </help-provider> </adf-faces-config> </adf-settings>
次の例に、adf-settings.xml
ファイル内で登録されているカスタム・ヘルプ・プロバイダ・クラスの例を示します。
<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>
コンポーネントのHelpTopicId
属性を使用して、ヘルプへのアクセスおよび表示を行います。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
コンポーネントからヘルプにアクセスする手順:
外部URLヘルプを使用する場合は、デフォルトではユーザーがヘルプ・アイコンをクリックしたときにヘルプ・ウィンドウが起動されます。かわりに、特定のコンポーネントのイベントにJavaScriptとクライアント・イベント・リスナーを使用して、ヘルプ・ウィンドウを起動できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。「コンポーネントへのヘルプの表示」を参照してください。
JavaScriptを使用して外部ヘルプ・ウィンドウを起動する手順:
デフォルトで、定義ヘルプがコンポーネントと関連している場合、疑問符のアイコンが表示されます。ユーザーはそのアイコンをクリックしてヘルプを表示します。コンポーネントのラベルの下に点線を表示させるかわりにカスタム・スキンを構成することができます。この線は、そのテキストがクリック可能であることを示します。ユーザーがテキストをクリックするとヘルプが表示されます。
注意:
コンポーネントにラベル・テキストがない場合、アイコンだけが表示されます。図19-31に、デフォルトの疑問符アイコンの付いたinputText
コンポーネントを示します。
図19-31 定義ヘルプ・アイコン
図19-32に、同じinputText
コンポーネントを示しますが、これは疑問符のかわりにリンクを表示するように構成されています。
図19-32 定義ヘルプ・テキスト・リンク
-tr-help-def-location
スキン・セレクタ・キーを使用して表示を構成します。アイコンを表示するにはこれをicon
に設定します。下線を表示するにはこれをlabel
に設定します。次の例に、下線を表示するように構成したヘルプを示します。
af|help { -tr-help-def-location: label; }
注意:
外部URLヘルプもラベル・テキストの下にリンクを表示します。コンポーネントに定義ヘルプとそれに関連する外部ヘルプの両方がある場合、アイコンは定義ヘルプに対して表示されます。ADF Facesでは、検証と変換の際の表示メッセージを組み合せることができます。これを利用すると、1つのウィンドウで一度に様々なメッセージを表示できますが、メッセージが表示されるのは、エラー・メッセージ、ヒント、説明ヘルプなどデフォルトの優先順です。
検証および変換に関するメッセージを表示する入力コンポーネントにヘルプ・メッセージを追加すると、ADF Facesにより、注意ウィンドウ内に次の順序でメッセージが表示されます。
検証および変換のエラー・メッセージ。
検証および変換のヒント。
入力および選択コンポーネントの場合のみ、説明ヘルプ。panelHeader
コンポーネントの場合、説明ヘルプは常にヘッダーの下に表示されます。
shortDesc
属性の値。
図19-33に、コンバータ、説明ヘルプおよびヒント・メッセージを含むinputDate
コンポーネントを示します。
図19-33 一度に表示されている異なるメッセージ・タイプ