Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11g リリース2(11.1.2.4.0) B66719-05 |
|
![]() 前 |
![]() 次 |
この章では、ADF Facesコンポーネントにヒントおよびメッセージを定義および表示する方法と、様々なレベルのヘルプ情報をユーザーに提供する方法を説明します。
この章では、次の項目について説明します。
ADF Facesでは、様々な方法でアプリケーションに情報テキストを表示できます。精巧なヘルプ・システムだけでなく、簡単なヒント・テキスト、検証および変換のヒント・テキストやエラー・メッセージも作成できます。
ADF Facesの多くのコンポーネントではshortDesc
属性がサポートされており、この属性は大部分のコンポーネントで、ユーザーがコンポーネント上にカーソルを置いたときにヒント情報を表示します。図19-2に、ツールバー・ボタンに構成されたヒントを示します。ヒントの作成の詳細は、19.2項「コンポーネントのヒントの表示」を参照してください。
ヒントと同様に、EditableValueHolder
コンポーネント(inputText
コンポーネントまたは選択コンポーネントなど)も、検証および変換に使用されるヒントを表示できます。検証または変換を構成すると、デフォルトのヒントにより注意ウィンドウが自動的に表示されます(詳細は、第7章「入力の検証および変換」を参照してください)。
ADF Facesでは、標準のJSFメッセージングAPIが使用されています。JSFでは、addMessage(java.lang.String clientId, FacesMessage message)
メソッドを使用してFacesContext
オブジェクトにFacesMessage
インスタンスを追加できるようにすることで、メッセージング用の組込みのフレームワークがサポートされています。一般的に、作成できるメッセージには、addMessage
メソッドに渡された任意のクライアントIDに基づいて特定のコンポーネントに関連付けられたコンポーネントレベルのメッセージと、addMessage
メソッドにクライアントIDが渡されなかったためにコンポーネントに関連付けられていないグローバルレベルのメッセージの2つのタイプがあります。
EditableValueHolder
ADF Facesコンポーネントで変換または検証が失敗すると、FacesContext
インスタンスのメッセージ・キューにFacesMessages
オブジェクトが自動的に追加され、コンポーネントのIDが渡されます。これらのメッセージは、コンポーネントの注意ウィンドウに表示されます。ADF Facesコンポーネントには、独自のメッセージを表示できます。タグを追加する必要はありません。
FacesMessages
コンポーネントのみでなく、document
タグも、すべてのグローバルなFacesMessages
オブジェクト(関連付けられているコンポーネントIDがない)の処理および表示を行います。コンポーネント・メッセージと同じように、表示するメッセージにタグを追加する必要はありません。グローバル・メッセージ(または複数のコンポーネント・メッセージ)が作成されると、図19-3に示すように、キューのすべてのメッセージがポップアップ・ウィンドウに表示されます。
また、ポップアップ・ウィンドウではなく、ページにメッセージを表示する場合は、ADF Faces messages
コンポーネントを使用できます。コンポーネントのヒントおよびメッセージ表示の詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
ヒント: ADF Facesには検証および変換用のメッセージがありますが、標準のJSFメッセージングAPIを使用して、キューに ![]() |
コンポーネントごとに独自のメッセージを表示するかわりに、panelLabelAndMessage
コンポーネントを使用してコンポーネントをグループ化し、1つの領域にメッセージを表示できます。コンポーネントをグループ化する必要がある場合に便利です。たとえば、File Explorerアプリケーションには、ユーザーが電話番号を入力するpanelLabelAndMessage
コンポーネントが使用されています。電話番号入力フィールドは、実際には3つの別々のinputText
コンポーネントです。panelLabelAndMessage
コンポーネントに、3つのinputText
コンポーネントがラップされています。それぞれに独自のラベルおよびメッセージを表示するかわりに、図19-8に示すように、3つのコンポーネントにはラベルとメッセージが1つずつあります。詳細は、19.4項「単一のラベルおよびメッセージを使用したコンポーネントのグループ化」を参照してください。
個々のコンポーネント・インスタンスにメッセージを構成するとともに、アプリケーション全体で再利用可能な情報を提供する個別のヘルプ・システムを作成できます。ヘルプ情報はタイプの異なるプロバイダを使用して作成し、UIコンポーネントからヘルプ・テキストを参照します。次に、ADF Facesでサポートされている3つのタイプのヘルプを示します。
定義: 図19-4に示すように、ユーザーがアイコン上にマウスを置くと、ヘルプ・テキストが表示されるヘルプ・アイコン(疑問符が表示された青い丸)を表示します。
説明: このタイプのヘルプはコンポーネントに応じて、(panelHeader
コンポーネントのように)コンポーネント内に説明テキストを表示するか、図19-5に示すように、ユーザーがコンポーネントをクリックした際に開かれる注意ウィンドウにテキストを表示します。テキストは任意の長さにできます。
外部URL: 別のブラウザ・ウィンドウで開く、外部アプリケーションに存在するヘルプ・トピックを作成できます。たとえば、図19-6では、説明ヘルプを表示するかわりに、スキンに関するヘルプ・トピックを開くよう構成された、スキン選択のselectOneChoice
コンポーネントが表示されています。ユーザーがヘルプ・アイコンをクリックすると、ヘルプ・トピックが開きます。
ヘルプ・システムの作成の詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
通常、メッセージは、アプリケーションでエラーが発生した場合(ユーザーが互換性のない情報を入力した場合など)に表示されるエラー・メッセージのタイプと、コンポーネントの使用やページでのタスクの完了に関するヒントなどを提供する情報メッセージのタイプに分けられます。
エラー・メッセージでは、JSFメッセージングAPIが使用されます。エラー・メッセージには、メッセージが特定コンポーネントにのみ当てはまるコンポーネント・メッセージと、複数のコンポーネントやページ全体に当てはまるグローバル・メッセージの2つのタイプがあります。
デフォルトでは、noteWindow
コンポーネントはコンポーネント・エラー・メッセージに使用されます。入力コンポーネントに変換や検証を構成すると、noteWindow
コンポーネントに、検証および変換のヒントやエラーが自動的に表示されます。ページにコンポーネントを追加する必要はありません。
たとえば、File Explorerアプリケーションでユーザーが「Help」 > 「Give Feedback」をクリックすると、カスタマ・サービスの担当者が連絡する日時を入力可能なダイアログが表示されます。inputDate
コンポーネントにはコンバータが含まれているため、ユーザーがフィールドをクリックすると、図19-7に示すように、予想されるパターンを示すヒントが注意ウィンドウに表示されます。inputDate
コンポーネントに最小値または最大値も構成されている場合は、その情報もヒントに表示されます。これらのヒントは、コンバータおよびバリデータにより自動的に表示されます。
図19-7に表示されているフィールドにユーザーが不適切な日付を入力した場合、図19-8に示すようにエラー・メッセージが表示されます。エラー・メッセージは、ヒントともに注意ウィンドウに表示されることに注意してください。
ADF Facesコンポーネント以外にエラー・メッセージを表示する場合、または注意ウィンドウではなく、インラインでメッセージを表示する場合は、ADF Faces message
コンポーネントを使用します。このコンポーネントを使用すると、図19-9に示すように、コンポーネントの隣にメッセージが表示されます。
グローバル・メッセージはデフォルトで、図19-10に示すように、ダイアログ内に表示されます。ページにポップアップ・コンポーネントを追加する必要はありません。
エラー・メッセージをページに直接表示する場合は、messages
コンポーネントを使用します。このコンポーネントを使用すると、図19-11に示すように、ページ上部のリストにメッセージが表示されます。
エラー・メッセージの詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
情報メッセージは、単純なツールチップから複雑なヘルプ・システムまで多岐にわたります。ヒントまたは情報を表示するコンポーネントでヘルプ・テキストがサポートされていない場合には、ツールチップを使用する必要があります。ただし、ツールチップ・テキストは簡潔にする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、ヘルプ・テキストの使用を検討してください。
ツールチップは、コンポーネントにshortDesc
属性を構成して作成します。図19-12に示すように、ユーザーがコンポーネント上にカーソルを置くと、属性の値が注意ウィンドウに表示されます。
ツールチップの詳細は、19.2項「コンポーネントのヒントの表示」を参照してください。
ツールチップに収まる以上の情報を表示する必要がある場合は、定義ヘルプを使用します。定義ヘルプを構成すると、大部分のコンポーネントで、そのコンポーネントの隣にヘルプ・アイコンが表示されます。図19-13に示すように、コンポーネント上にマウスが置かれると、ヘルプ・テキストが表示されます。
定義ヘルプの詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
フィールドレベル・ヘルプを表示する場合は、説明テキストを使用するように入力コンポーネントを構成します。ユーザーがコンポーネントをクリックすると、図19-14に示すように、注意ウィンドウにヘルプ・テキストが表示されます。
タスクの説明を表示する場合は、コンテナ・コンポーネントに説明ヘルプを構成します。図19-15に示すように、コンポーネントのヘッダーにテキストが表示されます。
ベスト・プラクティス: 入力コンポーネントの説明テキストは、説明なしでは、通常のユーザーがタスクに失敗する可能性がある場合にのみ使用します。説明テキストを多用すると、ページが指示で煩雑になったり、関連するページ要素が注意ウィンドウで見えにくくなり、ユーザーの注意が散漫になったりします。 |
複雑なヘルプを作成する必要がある場合は、ヘルプ・アイコンを使用して、URLを介してアクセス可能な外部ヘルプ・システムにリンクできます。
説明および外部ヘルプの詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
メッセージ・コンポーネントおよびヘルプ機能を実装する前に、ADF Facesのその他の機能を理解しておくと役に立ちます。また、ページにこれらのコンポーネントを追加してから、アイコンを変更するためのスキニング、アクセシビリティ、およびメッセージ・テキストを格納するためのリソース・バンドルの使用などの機能の追加が必要なことに気が付く場合もあります。次に、メッセージ・コンポーネントで使用できるその他の機能へのリンクを示します。
テキストでのパラメータの使用: コンポーネントに表示されるテキストに、実行時に解決されるパラメータを含める場合は、ADF Faces EL書式タグを使用できます。詳細は、3.5.2項「EL書式タグの使用方法」を参照してください。
クライアント・イベント: JavaScriptを使用してヘルプ・トピックを起動する場合は、クライアント・イベントにリスナーを使用します。クライアント側イベントの詳細は、6.3項「ADF Facesクライアント・イベントに対するJavaScriptの使用」を参照してください。
スキニング: メッセージおよびヘルプに表示されるアイコンは、アプリケーションに使用されているスキンによって決まります。アイコンは、新しいスキンを作成することで変更できます。詳細は、第28章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
ローカライゼーション: メッセージに直接テキストを入力するかわりに、プロパティ・ファイルを使用できます。これらのファイルにより、これらの文字列の翻訳を管理できます。詳細は、第29章「ページの国際化およびローカライズ」を参照してください。
ADF Facesコンポーネントでは、ユーザーがコンポーネント上にマウスを置いた場合、shortDesc
属性を使用してヒントが表示されます。入力コンポーネントでは、注意ウィンドウにヒントが表示されます。その他のコンポーネント・タイプでは、標準のヒント・ボックスにヒントが表示されます。このテキストは短くする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、19.5項「コンポーネントへのヘルプの表示」で説明されているように、ヘルプ・テキストの使用を検討してください。
図19-16に、inputText
コンポーネント上にカーソルが置かれた際の様子を示します。
図19-17に、showDetailItem
コンポーネントに表示されたヒントを示します。
ヒントを表示するには、コンポーネントにshortDesc
属性を使用します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.2項「コンポーネントへのヒントの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントにヒントを定義する手順:
構造ウィンドウで、ヒントを表示するコンポーネントを選択します。
プロパティ・インスペクタで、「外観」セクションを開き、shortDesc
属性に値を入力します。
ヒント: 80文字を超えると、ブラウザによってはヒントが切り捨てられてしまうため、値は80文字未満にする必要があります。 |
使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第29章「ページの国際化およびローカライズ」を参照してください。
バリデータおよびコンバータには、関連するフィールドがクリックされた際にユーザーに表示されるデフォルトのヒントがあります。コンバータの場合、ヒントは、使用する適切な書式をユーザーに示します。バリデータの場合、ヒントは有効な値を示すために使用されます。
たとえば、図19-18に示すように、File Explorerアプリケーションでは、ユーザーがカスタマ・サービスに連絡ページの日付入力フィールドをクリックすると、使用する正しい書式が示されたヒントが表示されます。
ADF Facesコンポーネントの値が検証に失敗した場合、またはコンバータで変換できない場合は、コンポーネントに結果のFacesMessage
インスタンスが表示されます。
たとえば、図19-19に示されているように、コンバータのdateStyle
属性に一致しない日付を入力すると、エラー・メッセージが表示されます。
デフォルトのバリデータおよびコンバータのヒントとエラー・メッセージを、1つのコンポーネント・インスタンスに対して、またはすべてのインスタンスに対してグローバルにオーバーライドできます。コンポーネント・インスタンスにカスタム・メッセージを定義するには、表示する詳細なメッセージに属性を設定します。実際の属性は、バリデータまたはコンバータによって異なります。図19-20に、プロパティ・インスペクタに表示されているconvertDateTime
コンバータのメッセージをオーバーライドするために移入できる属性を示します。
コンポーネントのすべてのインスタンスで使用されるエラー・メッセージを定義するには、デフォルト・メッセージをオーバーライドするリソース・バンドルにエントリを作成する必要があります。
注意ウィンドウにメッセージを表示しない場合は、message
コンポーネントを使用すると、メッセージがコンポーネントにインラインで表示されます。図19-21に、message
コンポーネントを使用してメッセージがどのように表示されるかを示します。
ADF FacesアプリケーションのJSFページでは、特にポップアップ・ウィンドウへのすべてのグローバル・メッセージ(コンポーネントに関連付けられていないメッセージ)の表示を処理するdocument
タグが使用されています。ただし、グローバル・メッセージをページに表示する場合は、messages
コンポーネントを使用します。
単一のコンポーネント・インスタンスのデフォルトのバリデータおよびコンバータのメッセージをオーバーライドするには、異なるメッセージ属性に値を設定します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
バリデータまたはコンバータのメッセージを定義する手順:
構造ウィンドウで、エラー・メッセージを作成するコンバータまたはバリデータを選択します。
注意: オーバーライドできるのは、ADF Facesコンポーネントのメッセージのみです。ADF Faces以外のコンポーネント( |
プロパティ・インスペクタで、「メッセージ」セクションを開き、メッセージを指定する属性の値を入力します。
値には、{0}、{1}、{2}などのパラメータ・プレースホルダを使用して、動的コンテンツを含めることができます。たとえば、convertDateTime
コンバータのmessageDetailConvertDate
属性には、次のパラメータが使用されます。
{0}: コンポーネントを識別するラベル
{1}: ユーザーによって入力される値
{2}: コンポーネントで想定される書式の例
ヒント: アプリケーションで双方向または右から左への表示が使用されている場合は、Internet Explorerで正しく表示されない可能性があるため、想定される書式パラメータ(2)を使用してメッセージを開始しないでください。 |
これらのパラメータを使用して、次のメッセージを作成できます。
{1} is not using the correct date format. Please enter the date as follows: {2}
.
エラー・メッセージは、図19-22のように表示されます。
ヒント: メッセージで使用されたパラメータを含むプロパティ・ヘルプを表示するには、ドロップダウン・メニューを使用します。 |
使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第29章「ページの国際化およびローカライズ」を参照してください。
注意: メッセージ・テキストは、 |
messageDetail[XYZ]
属性を使用してコンポーネント・インスタンスごとにメッセージの文字列を変更するかわりに、カスタム文字列がすべてのインスタンスに表示されるように文字列をグローバルにオーバーライドできます。グローバル・メッセージは、メッセージ・バンドルのキーと値のペアによって処理されます。サマリー、詳細およびヒント・メッセージをオーバーライドできます。
デフォルトのバリデータまたはコンバータのメッセージをグローバルにオーバーライドする手順:
オーバーライドするメッセージのメッセージ・キーを定義するには、付録B「コンバータおよびバリデータ・メッセージのメッセージ・キー」を参照してください。たとえば、入力値が最大の値の長さを超えた場合に表示される詳細メッセージをオーバーライドするには、B.3.8項「af:validateLength」に示すように、キーorg.apache.myfaces.trinidad.validator.LengthValidator. MAXIMUM_detail
を使用します。
メッセージ・バンドルを作成するか開きます。メッセージ・バンドルの作成手順は、29.3.1項「ベース・リソース・バンドルの定義方法」を参照してください。
メッセージ・バンドルにキー・オーバーライドを追加します。たとえば、入力値の長さに関するメッセージをオーバーライドするには、次のような内容を追加します。
org.apache.myfaces.trinidad.validator.LengthValidator.MAXIMUM_detail: Your value exceeds the limit.
メッセージ・バンドルが新規リソース・バンドルである場合、29.3.3項「アプリケーションへのロケールおよびリソース・バンドルの登録方法」の手順に従い、faces-config.xml
ファイルを使用して、バンドルをアプリケーションに登録する必要があります。ただし、<resource-bundle>
タグではなく、<message-bundle>
タグを使用します。
コンポーネントで注意ウィンドウにメッセージを表示するかわりに、message
コンポーネントを使用して、ページにインラインでメッセージを表示できます。message
コンポーネントで正しいメッセージが表示されるようにするには、特定のコンポーネントと関連付けます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントのメッセージをインラインで表示する手順:
構造ウィンドウで、messages
コンポーネントを使用してメッセージを表示するコンポーネントを選択します。まだ設定されていない場合は、コンポーネントのIDを入力します。
コンポーネント・パレットで、「テキストおよび選択」パネルから「メッセージ」をドラッグし、メッセージを表示するページの場所にドロップします。
ドロップダウン・メニューを使用してfor
属性に「編集」を選択します。
「プロパティの編集」ダイアログで、messages
コンポーネントでメッセージを表示するコンポーネントを探します。IDの設定されているコンポーネントのみが有効な選択肢です。
注意: 表示されるメッセージ・アイコンとメッセージ・コンテンツは、 |
グローバル・メッセージをページのポップアップ・ウィンドウに表示するかわりに、messages
コンポーネントを使用してインラインで表示します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
グローバル・メッセージをインラインで表示する手順:
コンポーネント・パレットで、「テキストおよび選択」パネルから「メッセージ」をドラッグし、メッセージを表示するページの場所にドロップします。
プロパティ・インスペクタで次の属性を設定します。
globalOnly
: デフォルトでは、ADF Facesはグローバル・メッセージ(コンポーネントに関連付けられていないメッセージ)を表示し、次に個々のコンポーネントのメッセージを表示します。ボックスにグローバル・メッセージのみを表示する場合は、この属性をtrue
に設定します。コンポーネント・メッセージは、関連付けられたコンポーネントに引き続き表示されます。
inline
: ページの上部にメッセージを表示する場合にtrue
に設定します。設定しない場合、メッセージはダイアログに表示されます。
ADF Facesの入力および選択コンポーネントには、デフォルトで、ラベルおよびメッセージの表示用に組込みサポートが用意されています。コンポーネントをグループ化して単一のラベルを使用する場合は、panelLabelAndMessage
コンポーネントを使用してコンポーネントをラップします。
たとえば、File Explorerアプリケーションでは、別々のinputText
コンポーネントを4つ(市外局番、市内局番、最後の4桁、および内線のそれぞれに1つずつ)使用して電話番号を収集します。単一のラベルが必要なため、4つのinputText
コンポーネントはpanelLabelAndMessage
コンポーネントにラップされ、ラベルの値はそのコンポーネントに設定されます。ただし、内線の入力コンポーネントには追加のラベルが必要なため、outputText
コンポーネントが使用されます。例19-1に、panelLabelAndMessage
コンポーネントのJSFコードを示します。
例19-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>
図19-23に、panelLabelAndMessage
およびネストしたコンポーネントがブラウザにどのように表示されるかを示します。
panelLabelAndMessage
コンポーネントには、グループの最後に追加のコンポーネントを表示するために使用できるEnd
ファセットも含まれます。図19-24に、End
ファセットにoutputText
コンポーネントが移入されている場合に、電話番号フィールドがどのように表示されるかを示します。
panelLabelAndMessage
コンポーネント内にpanelGroupLayout
コンポーネントを使用して、必要なレイアウトのコンポーネントをグループ化します。panelGroupLayout
コンポーネントの使用方法の詳細は、9.13項「関連する項目のグループ化」を参照してください。
各入力コンポーネントでsimple
属性をtrue
に設定し、個々のラベルが表示されないようにします。ただし、メッセージ目的およびアクセシビリティ用の各コンポーネントのラベル属性に値を設定することが必要な場合があります。
ヒント: 複数の |
panelLabelAndMessage
コンポーネントを使用して、コンポーネントをグループ化してラップします。panelLabelAndMessage
コンポーネントは、通常メッセージやラベルを表示するコンポーネントのみでなく、任意のコンポーネントのラップに使用できます。
コンポーネントをグループ化し、そのグループに単一のラベルを表示するには、panelLabelAndMessage
コンポーネントを使用します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.4項「単一のラベルおよびメッセージを使用したコンポーネントのグループ化」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
単一のラベルおよびメッセージを使用してフォーム入力コンポーネントを配置する手順:
必要に応じて、入力コンポーネントまたは選択コンポーネントをページに追加します。
各入力および選択コンポーネントに次の設定を行います。
simple
属性をtrue
に設定します。
アクセシビリティの理由から、label
属性をコンポーネントのラベルに設定します。
構造ウィンドウで、手順1で作成した入力コンポーネントまたは選択コンポーネントを選択します。選択内容を右クリックし、「囲む」→「パネル・ラベルとメッセージ」を選択します。
panelLabelAndMessage
コンポーネントが選択された状態で、プロパティ・インスペクタにおいて次の設定を行います。
label: コンポーネントのグループに表示するラベル・テキストを入力します。
for: ドロップダウン・メニューを使用して「編集」を選択します。「プロパティの編集」ダイアログで、子入力コンポーネントのIDを選択します。入力コンポーネントが複数ある場合は、最初のコンポーネントを選択します。
アクセシビリティ要件に一致するように、for
属性を最初のinputComponent
に設定します。
ネストした入力コンポーネントの1つ以上が必須コンポーネントで、これを示すためにマーカーを表示する場合は、showRequired
属性をtrue
に設定します。
End
ファセットにコンテンツを配置するには、必要なコンポーネントをファセットにドラッグ・アンド・ドロップします。
ファセットに配置できる子コンポーネントは1つのみであるため、複数の子コンポーネントを追加する場合は、panelGroupLayout
またはgroup
コンポーネントなどのコンテナで子コンポーネントをラップする必要があります。
ヒント: ファセットがビジュアル・エディタに表示されない場合は、次のようにします。
|
ADF Facesには、タイプの異なる3つのヘルプを作成および表示できるフレームワークが用意されており、そのコンテンツは、コンポーネントに構成されたテキストではなく、外部ソースから取得されます。コンテンツがコンポーネントに直接構成されず、複数のコンポーネントに使用できるため、ページ作成時間の節約になり、コンテンツが表示されるすべての場所ではなく、1箇所のコンテンツを変更することも可能です。
ADF Facesにより提供される1つ目のタイプの外部ヘルプは、定義ヘルプです。標準のヒント同様、コンテンツはメッセージ・ボックスに表示されます。ただし、ユーザーがコンポーネント上にマウスを置いた場合に表示されるのではなく、定義ヘルプではヘルプ・アイコン(疑問符が表示された青い丸)が表示されます。ユーザーがアイコン上にマウスを置くと、図19-25に示すようにコンテンツが表示されます。
表19-1に、定義ヘルプがサポートされているコンポーネントを示します。
表19-1 定義ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプ・アイコンの位置 | 例 |
---|---|---|
すべての入力コンポーネント、選択コンポーネント、色の選択、日付の選択、問合せコンポーネント |
ラベルの前。ラベルが存在しない場合は、フィールドの先頭。 |
|
パネル・ヘッダー、パネル・ボックス、詳細の表示ヘッダー |
ヘッダー・テキストの最後。 |
|
パネル・ウィンドウ、ダイアログ |
ヘッダーの「閉じる」アイコンの隣。 |
![]() |
表およびツリーの列 |
ヘッダー・テキストの下。 |
|
2つ目のタイプのヘルプは説明ヘルプです。説明ヘルプが表示される場所は、関連付けられているコンポーネントによって異なります。panelHeader
および検索パネル・コンポーネントでは、ヘッダー内に説明ヘルプが表示されます。図19-26に、図19-25に示されている、通常は定義ヘルプとして表示されるテキストが、panelHeader
コンポーネント内で説明ヘルプとしてどのように表示されるかを示します。
説明ヘルプがサポートされているその他すべてのコンポーネントでは、図19-27に示すように、注意ウィンドウにテキストが表示されます。ヘルプ・アイコンは表示されないことに注意してください。
表19-2に、説明ヘルプがサポートされているコンポーネントを示します。
表19-2 説明ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプの位置 | 例 |
---|---|---|
入力コンポーネント、色の選択、日付の選択、クイック問合せ |
注意ウィンドウ(フォーカスがある場合のみ) |
|
コンポーネントの選択 |
注意ウィンドウ(マウスが置かれている場合とフォーカスがある場合) |
|
パネル・ヘッダー、パネル・ボックス、問合せ |
ヘッダー・テキストの下のテキスト |
|
最後のタイプのヘルプは、外部URLヘルプです。外部アプリケーションのWebページへのURLを表示しておき、ヘルプ・アイコンがクリックされると、図19-28に示すように、別のブラウザ・ウィンドウでWebページが開かれます。ヘルプ・アイコンをクリックするかわりに、JavaScriptを使用し、クライアントベースのイベントに基づいてヘルプ・ウィンドウを開くことも可能です。
ADF Facesには、様々なヘルプ・プロバイダがあります。ResourceBundleHelpProvider
ヘルプ・プロバイダを使用すると、ヘルプ・コンテンツを保持するリソース・バンドルを作成できます。ELHelpProvider
ヘルプ・プロバイダを使用すると、マップに変換されるXLIFFファイルの作成、またはヘルプ・テキスト文字列のマップが含まれるマネージドBeanの作成が可能です。異なるヘルプ・プロバイダを組み合せて使用することもできます。また、独自のヘルプ・プロバイダ・クラスの作成も可能です。
アプリケーションにヘルプを作成するには、次のようにします。
使用するヘルプ・プロバイダを決定し、必要なアーティファクトを実装します。
プロバイダのヘルプへのアクセスに使用する接頭辞を指定して、ヘルプ・プロバイダを登録します。各ヘルプ・プロバイダには一意の接頭辞があり、識別子として使用されます。プロバイダが登録されている接頭辞で始まるヘルプ・トピックIDに対してのみヘルプを生成するために、特定のプロバイダがコールされます。
コンポーネントのhelpTopicId
属性を使用して、UIコンポーネントがプロバイダに含まれるヘルプにアクセスできるようにします。helpTopicId
属性には、次の情報が含まれています。
ヘルプ・プロバイダにより使用される接頭辞
トピック名
たとえば、図19-27に示されているinputText
コンポーネントのhelpTopicId
属性の値はRBHELP_FILE_NAME
です。ここで、RBHELP
はリソース・バンドル・ヘルプ・プロバイダの接頭辞で、FILE_NAME
はヘルプ・トピック名です。
標準のリソース・バンドル・プロパティ・ファイルにヘルプ・テキストを格納し、ResourceBundleHelpProvider
クラスを使用してコンテンツを送信できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
リソース・バンドルベースのヘルプを作成する手順:
各ヘルプ・トピックのトピックIDおよびヘルプ・テキストを含むプロパティ・ファイルを作成します。トピックIDには次の情報が含まれている必要があります。
RBHELP
など、プロバイダにより使用される接頭辞
TELEPHONE_NUMBER
などのトピック名
DEFINITION
などのヘルプ・タイプ
たとえば、トピックIDはRBHELP_TELEPHONE_NUMBER_DEFINITION
のようになります。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例19-2を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。 |
例19-2に、3つのトピックがあるリソース・バンドルの例を示します。
例19-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.
adf-settings.xml
ファイルに、リソース・バンドルをヘルプ・プロバイダとして登録します。
プロバイダを登録するには、META-INFディレクトリからadf-settings.xml
ファイルを開き、「ソース」タブをクリックして、次の要素を追加します。
<help-provider>
: prefix
属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。これは、アプリケーション内で一意であり、リソース・バンドルに使用されている接頭辞に一致する必要があります。
注意:
|
<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
です。
例19-3に、例19-2のリソース・バンドルが、adf-settings.xml
ファイルにどのように登録されているかを示します。
例19-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>
外部URLヘルプを使用する場合は、ResourceBundleHelpProvider
クラスを拡張し、getExternalUrl
メソッドも実装する必要があります。例19-4に、メソッドの例を示します。
例19-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; }
例19-4では、メソッドのすべてのトピックで同じURLが返されます。異なるURLを返すには、if
文を個別に作成する必要があります。
ヘルプ・アイコンからではなく、コンポーネントのクライアント・イベントに基づいて外部ウィンドウを起動する場合は、JavaScript関数を使用します。詳細は、19.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
XLIFF XMLファイルにヘルプ・テキストを格納し、ELHelpProvider
クラスを使用してコンテンツを送信できます。このクラスでは、XLIFFファイルが、ヘルプのテキストとして使用される文字列のマップに変換されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
XLIFFヘルプを作成する手順:
<body>
タグ内に次の要素を使用して、ヘルプ・テキストを定義するXLIFFファイルを作成します。
<trans-unit>
: トピックIDを入力します。このIDには、XLIFFHELP_CREDIT_CARD_DEFINITION
のように、接頭辞、トピック名およびヘルプ・タイプが含まれている必要があります。この例で、XLIFFHELP
はXLIFFファイルへのアクセスに使用される接頭辞になります。CREDIT_CARD
はトピック名で、DEFINITION
はヘルプ・タイプです。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例19-5を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。 |
<source>
: <trans-unit>
要素の直接の子要素として作成し、ヘルプ・テキストを入力します。
<target>
: <trans-unit>
要素の直接の子要素として作成し、空白のままにします。この要素は、変換されたヘルプ・テキストの保持に使用されます。
<note>
: <trans-unit>
要素の直接の子要素として作成し、ヘルプ・テキストの説明を入力します。
例19-5に、2つのトピックを含むXLIFFファイルの例を示します。
例19-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>
adf-settings.xml
ファイルに、XLIFFをヘルプ・プロバイダとして登録します。
プロバイダを登録するには、META-INFディレクトリからadf-settings.xml
ファイルを開き、次の要素を追加します。
<help-provider>
: prefix
属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。これは、アプリケーション内で一意であり、XLIFFファイルに使用されている接頭辞に一致する必要があります。
注意:
|
<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式を入力します。
例19-6に、例19-5のXLIFFファイルが、adf-settings.xml
ファイルにどのように登録されているかを示します。
例19-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>
マネージドBeanヘルプを実装するには、ヘルプのテキストとして使用される文字列のマップを含むマネージドBeanを作成します。マネージドBeanヘルプ・プロバイダでは、ELHelpProvider
クラスを使用してヘルプが送信されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
マネージドBeanヘルプの作成方法:
文字列のマップを戻すマネージドBeanを作成しますが、例19-7に示すように、いずれもIDおよびヘルプ・トピックのコンテンツです。
例19-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つ目の文字列はヘルプ・テキストです。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。そのため、2つの異なるヘルプ・タイプに同じトピック名を使用すると(例19-7を参照)、UIコンポーネントにより、両方のヘルプ・タイプが表示されます。 |
faces-config.xml
ファイルにマネージドBeanを登録します。例19-8に、例19-7に示されていて、faces-config.xml
ファイルに登録されているBeanを示します。
例19-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の使用および登録の詳細は、3.6項「マネージドBeanの作成と使用」を参照してください。
adf-settings.xml
ファイルに、マネージドBeanをヘルプ・プロバイダとして登録します。
プロバイダを登録するには、META-INFディレクトリからadf-settings.xml
ファイルを開き、次の要素を追加します。
<help-provider>
: prefix
属性を作成および使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。アプリケーション内で一意であることが必要です。
注意:
|
<help-provider-class>
: <help-provider>
要素の子要素として作成し、手順1で作成したクラスへの完全修飾クラス・パスを入力します。
<property>
: <help-provider>
要素の子要素として作成します。プロパティは、マネージドBeanのヘルプ文字列のマップを定義します。
<property-name>
: <property>
要素の子要素として作成し、helpSource
など、プロパティ名を入力します。
<value>
: <property>
要素の子要素として作成し、マネージドBeanのヘルプ・マップに解決されるEL式を入力します。
例19-9に、例19-8のBeanが、adf-settings.xml
ファイルにどのように登録されているかを示します。
例19-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>
マネージドBeanプロバイダに外部URLヘルプを使用する場合は、ELHelpProvider
クラスを拡張し、getExternalUrl
メソッドを実装する必要があります。例19-10に、メソッドの例を示します。
例19-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; }
例19-10では、メソッドのすべてのトピックで同じURLが返されます。異なるURLを返すには、if
文を個別に作成する必要があります。
ヘルプ・アイコンからではなく、コンポーネントのクライアント・イベントに基づいて外部ウィンドウを起動する場合は、JavaScript関数を使用します。詳細は、19.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
外部URLヘルプを使用する場合、デフォルトでは、ユーザーはヘルプ・アイコンをクリックしてヘルプ・ウィンドウを起動します。かわりに、特定のコンポーネントのイベントにJavaScriptとクライアント・イベント・リスナーを使用して、ヘルプ・ウィンドウを起動できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
JavaScriptを使用して外部ヘルプ・ウィンドウを起動する手順:
特定のURLまたはページの起動に、launchHelp
APIを使用するJavaScript関数を作成します。
例19-11に、helpClient.jspx
の起動に使用されるlaunchHelp
関数を示します。
関数をコールするクライアント・イベントを含むコンポーネントをドラッグ・アンド・ドロップします。このコンポーネントのclientId
をtrue
に設定する必要があります。
コンポーネント・パレットで、「操作」パネルから、手順2で作成したコンポーネントに、クライアント・リスナーを子としてドラッグ・アンド・ドロップします。手順1で作成した関数を起動するclientListener
を構成します。clientListener
タグの使用方法の詳細は、4.2項「クライアント・イベントのリスニング」を参照してください。
例19-12に、helpClient.jspx
ページを起動するためにcommandToolbarButton
コンポーネントにクリック・イベントを設定する際に使用されるコードを示します。
例19-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>
ADF Facesヘルプ・プロバイダのいずれかを使用するかわりに、独自のプロバイダを作成します。ヘルプ・プロバイダがアクセスして表示できるファイルに実際のテキストを作成します。Javaクラス・ヘルプ・プロバイダを作成するには、HelpProvider
クラスを拡張します。このクラスの詳細は、ADF FacesのJavadocを参照してください。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
Javaクラス・ヘルプ・プロバイダを作成する手順:
oracle.adf.view.rich.help.HelpProvider
を拡張するJavaクラスを作成します。
パラメータなしでpublicコンストラクタを作成します。また、ヘルプ・トピックにアクセスして戻すロジックも実装する必要があります。
このクラスは、このプロバイダの登録時にadf-settings.xml
ファイルに設定されたプロパティおよび値にアクセスできます。たとえば、すべてのADF Facesプロバイダでは、プロパティを使用して、ヘルプ文字列の実際のソースが定義されます。adf-settings.xml
ファイルのプロパティにアクセスするには、String
であるプロパティを設定するメソッドを作成します。次に例を示します。
public void setMyCustomProperty(String arg)
プロバイダを登録するには、META-INFディレクトリからadf-settings.xml
ファイルを開き、次の要素を追加します。
<help-provider>
: prefix
属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。アプリケーション内で一意であることが必要です。
注意:
|
<help-provider-class>
: <help-provider>
要素の子要素として作成し、手順1で作成したクラスへの完全修飾クラス・パスを入力します。
<property>
: <help-provider>
要素の子要素として作成し、手順3で作成したメソッドの引数として使用されるプロパティの定義に使用されます。
<property-name>
: <property>
要素の子要素として作成し、プロパティ名を入力します。
<value>
: <property>
要素の子要素として作成し、プロパティ値を入力します。
例19-13に、adf-settings.xml
ファイルに登録されているヘルプ・プロバイダ・クラスの例を示します。
例19-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>
コンポーネントのHelpTopicId
属性を使用して、ヘルプへのアクセスおよび表示を行います。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントからヘルプにアクセスする手順:
構造ウィンドウで、ヘルプを追加するコンポーネントを選択します。ヘルプがサポートされているコンポーネントのリストは、表19-1および表19-2を参照してください。
プロパティ・インスペクタで、「外観」セクションを開き、helpTopicId
属性に値を入力します。これには、適切なヘルプ・プロバイダおよびトピック名にアクセスする接頭辞が含まれている必要があります。次に示すように、その名前で登録されているすべてのヘルプ・タイプが戻されて表示されるため、ヘルプ・タイプは含めません。
<af:inputText label="Credit Card" helpTopicId="XLIFF_CREDIT_CARD"/>
この例では、例19-5のXLIFFファイルに定義されている定義ヘルプと説明ヘルプの両方が戻されます。
ヘルプがサポートされていないコンポーネントにヘルプを表示する場合は、outputText
コンポーネントを追加してヘルプ・テキストを表示し、次のようにして、そのコンポーネントをヘルプ・プロバイダにバインドできます。
<af:outputFormatted value="#{adfFacesContext.helpProvider['XLIFF_CREDIT_CARD'].instructions}"/>
これは、説明ヘルプ・テキストにアクセスします。
検証および変換に関するメッセージを表示する入力コンポーネントにヘルプ・メッセージを追加すると、ADF Facesにより、注意ウィンドウ内に次の順序でメッセージが表示されます。
検証および変換のエラー・メッセージ。
検証および変換のヒント。
入力および選択コンポーネントの場合のみ、説明ヘルプ。panelHeader
コンポーネントの場合、説明ヘルプは常にヘッダーの下に表示されます。
shortDesc
属性の値。
図19-29に、コンバータ、説明ヘルプおよびヒント・メッセージを含むinputDate
コンポーネントを示します。