この章では、shortDesc
属性を使用してヒントを表示する方法と、ADF Facesのコンポーネントに対するメッセージを表示する方法を説明します。この章では、ユーザーのために様々なレベルのヘルプ情報を提供する方法も説明します。
この章では、次の項目について説明します。
ADF Facesでは、様々な方法でアプリケーションに情報テキストを表示できます。精巧なヘルプ・システムだけでなく、簡単なヒント・テキスト、検証および変換のヒント・テキストやエラー・メッセージも作成できます。
ADF Facesの多くのコンポーネントではshortDesc
属性がサポートされており、この属性は大部分のコンポーネントで、ユーザーがコンポーネント上にカーソルを置いたときにヒント情報を表示します。図19-2に、ツールバー・ボタンに構成されたヒントを示します。
ヒントと同様に、ADF Facesのコンポーネントの中にも、たとえばinputText
コンポーネントや選択コンポーネントのように、ポップアップ・ヒント・メッセージや失敗メッセージを表示できるものがあり、検証や変換に使用されます。作成できるメッセージのタイプは2つあります。1つはコンポーネント・レベル・メッセージで、特定のコンポーネントに適用されます。もう1つはグローバル・レベル・メッセージで、特定のページに、またはコンポーネントのグループに適用されます。図19-3に示すヒント・メッセージは、入力日付フィールドに対して構成されています。
個々のコンポーネント・インスタンスにメッセージを構成するとともに、アプリケーション全体で再利用可能な情報を提供する個別のヘルプ・システムを作成できます。ヘルプ情報はタイプの異なるプロバイダを使用して作成し、UIコンポーネントからヘルプ・テキストを参照します。次に、ADF Facesでサポートされている3つのタイプのヘルプを示します。
定義: 図19-4に示すように、ユーザーがアイコン上にマウスを置くと、ヘルプ・テキストが表示されるヘルプ・アイコン(疑問符が表示された青い丸)を表示します。
説明: このタイプのヘルプはコンポーネントに応じて、(panelHeader
コンポーネントのように)コンポーネント内に説明テキストを表示するか、図19-5に示すように、ユーザーがコンポーネントをクリックした際に開かれる注意ウィンドウにテキストを表示します。テキストの長さの制限はありません。
外部URL: 別のブラウザ・ウィンドウで開く、外部アプリケーションに存在するヘルプ・トピックを作成できます。たとえば、図19-6では、説明ヘルプを表示するかわりに、スキンに関するヘルプ・トピックを開くよう構成された、スキン選択のselectOneChoice
コンポーネントが表示されています。ユーザーがselectOneChoice
コンポーネントをクリックすると、ヘルプ・トピックが開きます。
ヘルプ・システムの作成の詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
通常、メッセージは、アプリケーションでエラーが発生した場合(ユーザーが互換性のない情報を入力した場合など)に表示されるエラー・メッセージのタイプと、コンポーネントの使用やページでのタスクの完了に関するヒントなどを提供する情報メッセージのタイプに分けられます。
情報メッセージは、単純なツールチップから複雑なヘルプ・システムまで多岐にわたります。ヒントまたは情報を表示するコンポーネントでヘルプ・テキストがサポートされていない場合には、ツールチップを使用する必要があります。ただし、ツールチップ・テキストは簡潔にする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、ヘルプ・テキストの使用を検討してください。
ツールチップは、コンポーネントにshortDesc
属性を構成して作成します。これで、ユーザーがコンポーネントにカーソルを置くかコンポーネントをクリックしたときに(たとえばinputText
コンポーネントの場合)、その属性の値がノート・ウィンドウに表示されるようになります(図19-7を参照)。
ツールチップの詳細は、19.2項「コンポーネントのヒントの表示」を参照してください。
エラー・メッセージでは、JSFメッセージングAPIが使用されます。エラー・メッセージには、メッセージが特定コンポーネントにのみ当てはまるコンポーネント・メッセージと、複数のコンポーネントやページ全体に当てはまるグローバル・メッセージの2つのタイプがあります。
デフォルトでは、noteWindow
コンポーネントはコンポーネント・エラー・メッセージに使用されます。入力コンポーネントに変換や検証を構成すると、noteWindow
コンポーネントに、検証および変換のヒントやエラーが自動的に表示されます。ページにコンポーネントを追加する必要はありません。
たとえば、File Explorerアプリケーションでユーザーが「Help」 > 「Give Feedback」をクリックすると、カスタマ・サービスの担当者が連絡する日時を入力可能なダイアログが表示されます。inputDate
コンポーネントにはコンバータが含まれているため、ユーザーがフィールドをクリックすると、図19-8に示すように、予想されるパターンを示すヒントが注意ウィンドウに表示されます。inputDate
コンポーネントに最小値または最大値も構成されている場合は、その情報もヒントに表示されます。これらのヒントは、コンバータおよびバリデータにより自動的に表示されます。
図19-8に表示されているフィールドにユーザーが入力した日付が正しくない場合は、図19-9に示すようにエラー・メッセージが表示されます。エラー・メッセージは、ヒントともに注意ウィンドウに表示されることに注意してください。
ADF Facesコンポーネント以外にエラー・メッセージを表示する場合、または注意ウィンドウではなく、インラインでメッセージを表示する場合は、ADF Faces message
コンポーネントを使用します。このコンポーネントを使用するときは、メッセージはコンポーネントの隣に表示されます(図19-10を参照)。
グローバル・メッセージはデフォルトで、図19-11に示すように、ダイアログ内に表示されます。ページにポップアップ・コンポーネントを追加する必要はありません。
エラー・メッセージをページに直接表示する場合は、messages
コンポーネントを使用します。このコンポーネントを使用すると、図19-12に示すように、ページ上部のリストにメッセージが表示されます。
エラー・メッセージの詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
ツールチップに収まる量を超える情報を表示する必要がある場合は、定義ヘルプを使用します。定義ヘルプを構成すると、大部分のコンポーネントで、そのコンポーネントの隣にヘルプ・アイコンが表示されます。図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の使用」を参照してください。
スキニング: メッセージおよびヘルプに表示されるアイコンは、アプリケーションに使用されているスキンによって決まります。アイコンは、新しいスキンを作成することで変更できます。詳細は、第31章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
ローカライゼーション: メッセージに直接テキストを入力するかわりに、プロパティ・ファイルを使用できます。これらのファイルにより、これらの文字列の翻訳を管理できます。詳細は、第32章「ページの国際化およびローカライズ」を参照してください。
ADF Facesコンポーネントでは、ユーザーがコンポーネント上にマウスを置いた場合、shortDesc
属性を使用してヒントが表示されます。入力コンポーネントでは、注意ウィンドウにヒントが表示されます。その他のコンポーネント・タイプでは、標準のヒント・ボックスにヒントが表示されます。このテキストは短くする必要があります。より詳細な情報を表示する必要がある場合、または多数のコンポーネント・インスタンス間でテキストが再利用される場合は、19.5項「コンポーネントへのヘルプの表示」で説明されているように、ヘルプ・テキストの使用を検討してください。
図19-16に、inputText
コンポーネント上にカーソルが置かれた際の様子を示します。
図19-17に、showDetailItem
コンポーネントに表示されたヒントを示します。
ヒントを表示するには、コンポーネントにshortDesc
属性を使用します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.2項「コンポーネントへのヒントの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
コンポーネントにヒントを定義する手順:
構造ウィンドウで、ヒントを表示するコンポーネントを選択します。
「プロパティ」ウィンドウの「外観」セクションを開き、shortDesc
属性の値を入力します。
ヒント: 80文字を超えると、ブラウザによってはヒントが切り捨てられてしまうため、値は80文字未満にする必要があります。 |
使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第32章「ページの国際化およびローカライズ」を参照してください。
バリデータおよびコンバータには、関連するフィールドがクリックされた際にユーザーに表示されるデフォルトのヒントがあります。デフォルトのヒントは自動的にノート・ウィンドウに表示されます。コンバータの場合、ヒントは、使用する適切な書式をユーザーに示します。バリデータの場合、ヒントは有効な値を示すために使用されます。
たとえば、図19-18に示すように、File Explorerアプリケーションでは、ユーザーが「カスタマ・サービスに連絡」ページの日付入力フィールドをクリックすると、使用する正しい書式が示されたヒントが表示されます。
ADF Facesコンポーネントの値が検証に失敗した場合、またはコンバータで変換できない場合は、コンポーネントに結果のFacesMessage
インスタンスが表示されます。
たとえば、図19-19に示されているように、コンバータのdateStyle
属性に一致しない日付を入力すると、エラー・メッセージが表示されます。
デフォルトのバリデータおよびコンバータのヒントとエラー・メッセージを、1つのコンポーネント・インスタンスに対して、またはすべてのインスタンスに対してグローバルにオーバーライドできます。コンポーネント・インスタンスにカスタム・メッセージを定義するには、表示する詳細なメッセージに属性を設定します。実際の属性は、バリデータまたはコンバータによって異なります。図19-20に表示されている属性の値を入力すると、「プロパティ」ウィンドウに表示される、convertDateTime
コンバータのメッセージがオーバーライドされます。
コンポーネントのすべてのインスタンスで使用されるエラー・メッセージを定義するには、デフォルト・メッセージをオーバーライドするリソース・バンドルにエントリを作成する必要があります。
注意ウィンドウにメッセージを表示しない場合は、message
コンポーネントを使用すると、メッセージがコンポーネントにインラインで表示されます。図19-21に、message
コンポーネントを使用してメッセージがどのように表示されるかを示します。
ADF FacesアプリケーションのJSFページでは、特にポップアップ・ウィンドウへのすべてのグローバル・メッセージ(コンポーネントに関連付けられていないメッセージ)の表示を処理するdocument
タグが使用されています。ただし、グローバル・メッセージをページに表示する場合は、messages
コンポーネントを使用します。
注意: HTMLタグを使用してメッセージの書式を設定するには、メッセージを
エラー・メッセージでは、次のHTMLタグを使用できます。
|
単一のコンポーネント・インスタンスのデフォルトのバリデータおよびコンバータのメッセージをオーバーライドするには、異なるメッセージ属性に値を設定します。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.3項「検証および変換用のヒントとエラー・メッセージの表示」を参照してください。
他のADF Faces機能を使用して追加できる機能について理解することが役立つ場合もあります。詳細は、19.1.2項「メッセージ・コンポーネントのその他の機能」を参照してください。
バリデータまたはコンバータのメッセージを定義する手順:
構造ウィンドウで、エラー・メッセージを作成するコンバータまたはバリデータを選択します。
「プロパティ」ウィンドウの「メッセージ」セクションを開き、メッセージを表示する属性の値を入力します。
値には、{0}、{1}、{2}などのパラメータ・プレースホルダを使用して、動的コンテンツを含めることができます。たとえば、convertDateTime
コンバータのmessageDetailConvertDate
属性には、次のパラメータが使用されます。
{0}: コンポーネントを識別するラベル
{1}: ユーザーによって入力される値
{2} : コンポーネントで想定される書式の例
ヒント:
|
これらのパラメータを使用すると、次のメッセージを作成できます。
The date you have entered in the \"{0}\" field is not using the correct date format. Please enter the date as follows: {2}.
エラー・メッセージは、図19-22のように表示されます。コンバータのType
属性の値をパラメータに合せて変更することが必要になる可能性があります。
ヒント: メッセージで使用されたパラメータを含むプロパティ・ヘルプを表示するには、ドロップダウン・メニューを使用します。 |
使用するテキストがリソース・バンドルに格納されている場合は、ドロップダウン・リストを使用して「テキスト・リソースの選択」を選択します。「テキスト・リソースの選択」ダイアログを使用して、既存のバンドル内の適切なテキストを検索するか、既存のバンドル内に新しいエントリを作成します。リソース・バンドルの使用方法の詳細は、第32章「ページの国際化およびローカライズ」を参照してください。
注意: メッセージ・テキストは、 |
messageDetail[XYZ]
属性を使用してコンポーネント・インスタンスごとにメッセージの文字列を変更するかわりに、カスタム文字列がすべてのインスタンスに表示されるように文字列をグローバルにオーバーライドできます。グローバル・メッセージは、メッセージ・バンドルのキーと値のペアによって処理されます。サマリー、詳細およびヒント・メッセージをオーバーライドできます。
デフォルトのバリデータまたはコンバータのメッセージをグローバルにオーバーライドする手順:
オーバーライドするメッセージのメッセージ・キーを定義するには、付録B「コンバータおよびバリデータ・メッセージのメッセージ・キー」を参照してください。たとえば、入力値が最大の値の長さを超えた場合に表示される詳細メッセージをオーバーライドするには、B.3.8項「af:validateLength」に示すように、キーorg.apache.myfaces.trinidad.validator.LengthValidator. MAXIMUM_detail
を使用します。
メッセージ・バンドルを作成するか開きます。メッセージ・バンドルを作成する手順は、32.3.1項「リソース・バンドルをプロパティ・ファイルまたはXLIFFファイルとして作成する方法」を参照してください。
メッセージ・バンドルにキー・オーバーライドを追加します。たとえば、入力値の長さに関するメッセージをオーバーライドするには、次のような内容を追加します。
org.apache.myfaces.trinidad.validator.LengthValidator.MAXIMUM_detail: Your value exceeds the limit.
メッセージ・バンドルが新規リソース・バンドルである場合は、faces-config.xml
ファイルを使用してバンドルをアプリケーションに登録する必要があります。手順は32.3.5項「アプリケーションでのリソース・バンドルの登録方法」を参照してください。ただし、<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では、標準の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を参照)。
ヒント: ADF Facesには検証および変換用のメッセージがありますが、標準のJSFメッセージングAPIを使用して、キューに ![]() |
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-24に、panelLabelAndMessage
およびネストしたコンポーネントがブラウザにどのように表示されるかを示します。
panelLabelAndMessage
コンポーネントには、グループの最後に追加のコンポーネントを表示するために使用できるEnd
ファセットも含まれます。図19-25に、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
ファセットにコンテンツを配置するには、必要なコンポーネントをファセットにドラッグ・アンド・ドロップします。
JSPまたはJSPX上のファセットに配置できる子コンポーネントは1つのみであるため、複数の子コンポーネントを追加する場合は、子コンポーネントをコンテナ(たとえばpanelGroupLayout
またはgroup
コンポーネント)の内側にラップする必要があります。Faceletページ上のファセットには、複数のコンポーネントを配置できます。
ヒント: ファセットがビジュアル・エディタに表示されない場合は、次のようにします。
|
ADF Facesには、タイプの異なる3つのヘルプを作成および表示できるフレームワークが用意されており、そのコンテンツは、コンポーネントに構成されたテキストではなく、外部ソースから取得されます。コンテンツがコンポーネントに直接構成されず、複数のコンポーネントに使用できるため、ページ作成時間の節約になり、コンテンツが表示されるすべての場所ではなく、1箇所のコンテンツを変更することも可能です。
ヘルプ・メッセージの表示形式は、説明ヘルプ、定義ヘルプおよび外部URLヘルプの3つがあります。
説明ヘルプ
説明ヘルプとは、フォーカスがコンポーネントにあるときにヘルプ・テキストをノート・ウィンドウに表示するものです。図19-26に、ノート・ウィンドウに表示されているヘルプ・メッセージを示します。
通常、説明ヘルプはそのコンポーネントの使用方法を説明するために使用します。HTMLタグを使用してヘルプ・メッセージの書式を設定することもできますが、すべてのHTMLタグがサポートされているわけではありません(サポートされるHTMLタグについては、af:outputFormatted
コンポーネントのタグの説明を参照してください)。図19-27に、ノート・ウィンドウに表示されているHTML書式設定されたヘルプ・メッセージを示します。
コンポーネントによっては、説明ヘルプがコンポーネント内の説明として表示されることがあります。説明ヘルプが表示される場所は、関連付けられているコンポーネントによって異なります。たとえば、panelHeader
コンポーネントや検索パネル・コンポーネントでは説明ヘルプがヘッダーの中に表示されます(図19-28を参照)。
表19-1に、説明ヘルプがサポートされているコンポーネントを示します。
表19-1 説明ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプの位置 | 例 |
---|---|---|
入力コンポーネント、色の選択、日付の選択、クイック問合せ |
注意ウィンドウ(フォーカスがある場合のみ) |
|
コンポーネントの選択 |
注意ウィンドウ(マウスが置かれている場合とフォーカスがある場合) |
|
パネル・ヘッダー、パネル・ボックス、問合せ |
ヘッダー・テキストの下のテキスト |
|
定義ヘルプ
定義ヘルプは、メッセージ・ボックスに表示される点が標準のヒントに似ています。ただし、ユーザーがコンポーネント上にマウスを置いたときにヘルプそのものが表示されるのではなく、定義ヘルプの場合はヘルプ・アイコン(疑問符付きの青い円)が表示されます。ユーザーがこのアイコンにマウスを置くと、コンテンツが図19-29のように表示されます。
ヒント・メッセージではHTMLの書式設定がサポートされないことと、ヒント・メッセージの長さは80文字未満でなければならないことに注意してください。古いバージョンのブラウザでは、長いメッセージがサポートされないことがあるからです。表19-2に、定義ヘルプがサポートされるコンポーネントを示します。
表19-2 定義ヘルプがサポートされているコンポーネント
サポートされているコンポーネント | ヘルプ・アイコンの位置 | 例 |
---|---|---|
すべての入力コンポーネント、選択コンポーネント、色の選択、日付の選択、問合せコンポーネント |
ラベルの前。ラベルが存在しない場合は、フィールドの先頭。 |
![]() |
パネル・ヘッダー、パネル・ボックス、詳細の表示ヘッダー |
ヘッダー・テキストの最後。 |
![]() |
パネル・ウィンドウ、ダイアログ |
ヘッダーの「閉じる」アイコンの隣。 |
![]() |
表およびツリーの列 |
ヘッダー・テキストの下。 |
|
外部URLヘルプ
外部URLヘルプを利用すると、ヘルプのコンテンツが掲載されている既存のWebページにリンクすることができます。ヘルプ・アイコンがクリックされると、Webページが別のブラウザ・ウィンドウで開きます(図19-30を参照)。JavaScriptを使用して、任意のクライアント・ベースのイベントに基づいてヘルプ・ウィンドウを開くこともできます。
JavaScriptを使用して、ヘルプ・アイコンではなく外部ヘルプを開く方法の詳細は、19.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
ヘルプ・プロバイダ
ヘルプ・プロバイダとは、アプリケーションのヘルプのテキスト(外部ヘルプの場合はURL)を格納するものであり、META-INF/adf-settings.xml
ファイル内で登録されます。ADF Facesでは、次に示すヘルプ・プロバイダが説明ヘルプおよび定義ヘルプに対してサポートされます。
ResourceBundleHelpProvider
ヘルプ・プロバイダを使用すると、ヘルプ・コンテンツを保持するリソース・バンドルを作成できます。
ELHelpProvider
ヘルプ・プロバイダを使用すると、マップに変換されるXLIFFファイルを作成できます。
ヘルプ・テキストの文字列のマップが格納されているマネージドBean。
外部URLヘルプでは、getExternalURL
メソッドを実装するクラスが使用されます。
ヘルプ・プロバイダの作成の詳細は、19.5.1項「ヘルプ・プロバイダの作成方法」を参照してください。
複数のヘルプ・プロバイダの組合せを使用することや、独自のヘルプ・プロバイダ・クラスを作成することもできます。
ヘルプの作成
ヘルプ・メッセージを作成するには、次の手順を実行します。
説明ヘルプおよび定義ヘルプの場合は、使用するヘルプ・プロバイダのタイプ(リソース・バンドル、XLIFFファイルまたはマネージドBean)を決定してから、必要なアーティファクトを実装します。このヘルプ・プロバイダに実際のヘルプ・テキストが格納されます。詳細は、19.5.1項「ヘルプ・プロバイダの作成方法」を参照してください。
外部ヘルプの場合は、外部コンテンツへのURLが格納される外部ヘルプ・プロバイダを作成する必要があります。詳細は、19.5.1.4項「外部ヘルプ・プロバイダの作成方法」を参照してください。
ヘルプ・プロバイダを登録し、一意の接頭辞を指定します。この接頭辞は、このプロバイダのヘルプへのアクセスに使用されます。詳細は、19.5.2項「ヘルプ・プロバイダの登録方法」を参照してください。
コンポーネントのhelpTopicId
属性を使用して、UIコンポーネントがプロバイダに含まれるヘルプにアクセスできるようにします。helpTopicId
属性には、次の情報が格納されます。
ヘルプ・プロバイダにより使用される接頭辞
トピック名
詳細は、19.5.3項「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
外部URLヘルプの場合は、ユーザーがヘルプ・アイコンをクリックしたときではなく、イベントへの応答としてヘルプ・ウィンドウを起動することもできます。詳細は、19.5.4項「外部ヘルプ・ウィンドウを起動するためのJavaScriptの使用方法」を参照してください。
ヘルプ・プロバイダの作成手順は、作成するヘルプ・プロバイダのタイプによって異なります。説明ヘルプおよび定義ヘルプの場合は、リソース・バンドル、XLIFF
ファイルまたはマネージドBeanを使用できます。外部URLヘルプの場合は、Javaクラスを作成します。カスタム・ヘルプ・プロバイダを作成することもできます。
ResourceBundleHelpProvider
クラスによって、基本的なHelpProvider
インスタンスが作成されます。標準のリソース・バンドル・プロパティ・ファイルにヘルプ・テキストを格納し、ResourceBundleHelpProvider
クラスを使用してコンテンツを送信できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
リソース・バンドルベースのヘルプを作成する手順:
各ヘルプ・トピックのトピックIDおよびヘルプ・テキストを含むプロパティ・ファイルを作成します。トピックIDには次の情報が含まれている必要があります。
このプロバイダで使用される接頭辞(たとえばBUNDLE
)。
トピック名(たとえばPHONE_NUMBER
)。
DEFINITION
などのヘルプ・タイプ
トピックIDは、たとえばBUNDLE_PHONE_NUMBER_DEFINITION
となります。
複数のヘルプ・プロバイダを使用する場合は、必ずヘルプ・プロバイダのそれぞれに一意の接頭辞を使用してください。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。したがって、同じトピック名が2つの異なるタイプのヘルプに使用されている場合は、両方のタイプのヘルプがUIコンポーネントによって表示されます。 |
例19-2に、2つのトピックIDを持つリソース・バンドルのプロパティ・ファイルの例を示します。
リソース・バンドルをヘルプ・プロバイダとしてadf-settings.xml
ファイル内で登録してから、ヘルプを使用するようにADF Facesのコンポーネントを構成します。詳細は、19.5.2項「ヘルプ・プロバイダの登録方法」および19.5.3項「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
XLIFF XMLファイルにヘルプ・テキストを格納し、ELHelpProvider
クラスを使用してコンテンツを送信できます。このクラスでは、XLIFFファイルが、ヘルプのテキストとして使用される文字列のマップに変換されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
XLIFFヘルプを作成する手順:
<body>
タグ内に次の要素を使用して、ヘルプ・テキストを定義するXLIFFファイルを作成します。
<trans-unit>
: トピックIDを入力します。これには、接頭辞、トピック名およびヘルプ・タイプが含まれている必要があります。たとえば、HELP_PHONE_NUMBER_DEFINITION
です。この例では、HELP
がXLIFFファイルへのアクセスに使用される接頭辞となります。PHONE_NUMBER
がトピック名で、DEFINITION
がヘルプのタイプです。複数のヘルプ・プロバイダを使用する場合は、必ずヘルプ・プロバイダのそれぞれに一意の接頭辞を使用してください。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。したがって、同じトピック名が2つの異なるタイプのヘルプに使用されている場合は、両方のタイプのヘルプがUIコンポーネントによって表示されます。 |
<source>
: <trans-unit>
要素の直接の子要素として作成し、ヘルプ・テキストを入力します。
<target>
: <trans-unit>
要素の直接の子要素として作成し、空白のままにします。この要素は、変換されたヘルプ・テキストの保持に使用されます。
<note>
: <trans-unit>
要素の直接の子要素として作成し、ヘルプ・テキストの説明を入力します。
例19-3に、2つのトピックを含むXLIFFファイルの例を示します。
例19-3 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="HELP_PHONE_NUMBER_DEFINITION"> <source>Phone Number Definition</source> <target/> <note> We only support calling phone numbers in the United States at this time. </note> </trans-unit> <trans-unit id="HELP_CUST_SERVICE_EMAIL_INSTRUCTIONS"> <source>Customer Service Email Instructions</source> <target/> <note> For security reasons, we strongly discourage the submission of credit card numbers. </note> </trans-unit> </body> </file> </xliff>
XLIFF
ファイルをヘルプ・プロバイダとしてadf-settings.xml
ファイル内で登録してから、ヘルプを使用するようにADF Facesのコンポーネントを構成します。詳細は、19.5.2項「ヘルプ・プロバイダの登録方法」および19.5.3項「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
マネージドBeanプロバイダを実装するには、マネージドBeanを作成し、ヘルプのテキストとして使用される文字列のマップをその中に格納します。マネージドBeanヘルプ・プロバイダでは、ELHelpProvider
クラスを使用してヘルプが送信されます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
マネージドBeanヘルプの作成方法:
文字列のマップを戻すマネージドBeanを作成しますが、例19-4に示すように、いずれもIDおよびヘルプ・トピックのコンテンツです。
例19-4 ヘルプ・テキスト文字列のマップを戻すマネージド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("HELP_CUST_SERVICE_EMAIL_DEFINITION", "For security reasons, we strongly discourage the submission of credit card numbers"); _HELP_MAP.put("HELP_PHONE_NUMBER_DEFINITION", "We only support calling phone numbers in the United States at this time"); } }
最初の文字列には、接頭辞、トピック名およびヘルプ・タイプが含まれている必要があります。たとえば、
HELP_CUST_SERVICE_EMAIL_DEFINITION
です。この例では、HELP
がBeanへのアクセスに使用される接頭辞となります。CUST_SERVICE_EMAIL
がトピック名で、D
EFINITION
がヘルプのタイプです。2つ目の文字列はヘルプ・テキストです。複数のヘルプ・プロバイダを使用する場合は、必ずヘルプ・プロバイダのそれぞれに一意の接頭辞を使用してください。
注意: ヘルプ・プロバイダが登録されているすべての接頭辞は一意であることが必要です。また、別の接頭辞と同じ文字で接頭辞を開始することはできません。たとえば、 UIコンポーネントはトピック名に基づいてヘルプ・コンテンツにアクセスします。したがって、同じトピック名が2つの異なるタイプのヘルプに使用されている場合は、両方のタイプのヘルプがUIコンポーネントによって表示されます。 |
マネージドBeanをヘルプ・プロバイダとしてadf-settings.xml
ファイル内で登録してから、ヘルプを使用するようにADF Facesのコンポーネントを構成します。詳細は、19.5.2項「ヘルプ・プロバイダの登録方法」および19.5.3項「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
外部URLをヘルプとして使用するには、getExternalURL
メソッドを実装する必要があります。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
外部URLヘルプを使用するには
getExternalURL
メソッドを実装するクラスを作成します。
リソース・バンドル・ベースのヘルプを使用する場合は、getExternalURL
メソッドを実装するクラスがResourceBundleHelpProvider
クラスを拡張していることを確認してください。
XLIFFベースまたはマネージドBeanベースのヘルプを使用する場合は、getExternalURL
メソッドを実装するクラスがELHelpProvider
クラスを拡張していることを確認してください。
例19-5に示すDemoHelpProvider
クラスは、ResourceBundleHelpProvider
クラスを拡張しています。
例19-5 ResourceBundleHelpProviderクラスの拡張
import javax.faces.component.UIComponent; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import oracle.adf.view.rich.help.ResourceBundleHelpProvider; public class DemoHelpProvider extends ResourceBundleHelpProvider { public DemoHelpProvider() { } @Override protected String getExternalUrl(FacesContext context, UIComponent component, String topicId) { if (topicId == null) return null; if (topicId.contains("HELP_CONTACT_URL")) { return "http://www.oracle.com/us/corporate/contact/index.html"; } else return null; if (topicId.contains("HELP_OTN_URL") ) { return "http://www.oracle.com/technetwork/index.html"; } else return null; } }
例19-6に示すDemoELHelpProvider
クラスは、ELHelpProvider
クラスを拡張しています。
例19-6 ELHelpProviderクラスの拡張
import javax.faces.component.UIComponent; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import oracle.adf.view.rich.help.ResourceBundleHelpProvider; public class DemoELHelpProvider extends ELHelpProvider { public DemoELHelpProvider() { } @Override protected String getExternalUrl(FacesContext context, UIComponent component, String topicId) { if (topicId == null) return null; if (topicId.contains("HELP_CONTACT_URL")) { return "http://www.oracle.com/us/corporate/contact/index.html"; } else return null; if (topicId.contains("HELP_OTN_URL") ) { return "http://www.oracle.com/technetwork/index.html"; } else return null; } }
例19-5および例19-6では、Oracleのお問合せホーム・ページを開くためにHELP_CONTACT_URL
というトピックIDを使用しています。別のURLが返されるようにするには、別のif
文を作成します。例19-5および例19-6では、Oracle Technology Networkのホーム・ページを開くためにHELP_OTN_URL
というトピックIDを使用しています。
クラスをヘルプ・プロバイダとしてadf-settings.xml
ファイル内で登録してから、ヘルプを使用するようにADF Facesのコンポーネントを構成します。詳細は、19.5.2項「ヘルプ・プロバイダの登録方法」および19.5.3項「UIコンポーネントからのヘルプ・コンテンツへのアクセス方法」を参照してください。
ADF Facesヘルプ・プロバイダのいずれかを使用するかわりに、独自のプロバイダを作成します。ヘルプ・プロバイダがアクセスして表示できるファイルに実際のテキストを作成します。Javaクラス・ヘルプ・プロバイダを作成するには、HelpProvider
クラスを拡張します。このクラスの詳細は、Oracle ADF Faces Java APIリファレンスを参照してください。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
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>
要素の子要素として作成し、プロパティ値を入力します。
リソース、XLIFFおよびマネージドBeanのヘルプ・プロバイダ、および外部URLヘルプ・プロバイダの登録はadf-settings.xml
ファイル内で行います。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
ヘルプ・プロバイダを登録するには:
「アプリケーション」ウィンドウのMETA-INF
ノードからadf-settings.xml
ファイルを開きます。
「ソース」タブをクリックし、次の要素を追加します。
<help-provider>
: prefix
属性を使用して、UIコンポーネントがこのヘルプ・プロバイダにアクセスする際に使用する接頭辞を定義します。アプリケーション内で一意であることが必要です。
注意:
|
<help-provider-class>
: <help-provider>
要素の子要素として作成します。
リソース・バンドルを使用する場合は、値をoracle.adf.view.rich.help.ResourceBundleHelpProvider
と入力します。
XLIFFファイルを使用する場合は、値をoracle.adf.view.rich.help.ELHelpProvider
と入力します。
マネージドBeanまたは外部URLのプロバイダを使用する場合は、完全修飾クラス・パスを入力します。
注意: 外部URLヘルプの場合は、プロバイダが拡張したクラスがプロバイダ・クラスに反映されている必要があります。 |
<property>
: <help-provider>
要素の子要素として作成します。プロパティは、実際のヘルプ・ソースを定義します。
<property-name>
: <property>
要素の子要素として作成し、ソースの名前を入力します。
<value>
: <property>
要素の子要素として作成し、ヘルパーの完全修飾クラス名を入力します。たとえば、ADF Facesデモ・アプリケーションで使用されるリソース・バンドルの修飾クラス名はoracle.adfdemo.view.resource.DemoResources
です。
リソース・バンドルを使用する場合は、リソース・バンドルの完全修飾クラス名を入力します。たとえば、ADF Facesデモ・アプリケーションで使用されるリソース・バンドルの修飾クラス名はoracle.adfdemo.view.resource.DemoResources
です。
XLIFFファイルを使用する場合は、解決結果がXLIFFファイルとなるEL式を入力し、adfBundle
EL関数の中にラップします。たとえば、#{adfBundle['project1xliff.view.Project1XliffBundle']}
です。
マネージドBeanを使用する場合は、解決結果がマネージドBean上のヘルプ・マップとなるEL式を入力します。
外部URLヘルプを使用する場合は、作成したプロバイダ・クラスの完全修飾クラス名を入力します。
例19-7に、adf-settings.xml
ファイル内で登録されているリソース・バンドルを示します。
例19-7 ヘルプ・プロバイダとしてのリソース・バンドルの登録
<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>
例19-8に、adf-settings.xml
ファイル内で登録されているXLIFFファイルを示します。
例19-8 ヘルプ・プロバイダとしての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>
例19-9に、adf-settings.xml
ファイル内で登録されているBeanを示します。
例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="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>
例19-10に、adf-settings.xml
ファイル内で登録されている外部ヘルプ・プロバイダを示します。
例19-10 外部URLヘルプ・プロバイダの登録
<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>
例19-11に、adf-settings.xml
ファイル内1で登録されているカスタム・ヘルプ・プロバイダ・クラスの例を示します。
例19-11 ヘルプ・プロバイダ・クラスの登録
<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項「コンポーネントへのヘルプの表示」を参照してください。
コンポーネントからヘルプにアクセスする手順:
構造ウィンドウで、ヘルプを追加するコンポーネントを選択します。ヘルプがサポートされているコンポーネントのリストは、表19-1および表19-2を参照してください。
「プロパティ」ウィンドウの「外観」セクションを開き、helpTopicId
属性の値を入力します。
定義ヘルプおよび説明ヘルプの場合は、この値に、正しいヘルプ・プロバイダにアクセスするための接頭辞とトピック名が含まれている必要があります。ヘルプ・タイプが含まれていてはなりません。その名前で登録されているすべてのヘルプ・タイプが返されて表示されるからです。
次に例を示します。
<af:inputText label="Customer Service E-Mail" helpTopicId="HELP_CUST_SERVICE_EMAIL"/>
この例では、例19-3のXLIFFファイルに定義されている定義ヘルプと説明ヘルプの両方が戻されます。
ヘルプがサポートされていないコンポーネントにヘルプを表示する場合は、outputText
コンポーネントを追加してヘルプ・テキストを表示し、次のようにして、そのコンポーネントをヘルプ・プロバイダにバインドできます。
<af:outputFormatted value="#{adfFacesContext.helpProvider['HELP_CUST_SERVICE_ EMAIL'].instructions}"/>
これは、説明ヘルプ・テキストにアクセスします。
外部URLヘルプを使用する場合は、デフォルトではユーザーがヘルプ・アイコンをクリックしたときにヘルプ・ウィンドウが起動されます。かわりに、特定のコンポーネントのイベントにJavaScriptとクライアント・イベント・リスナーを使用して、ヘルプ・ウィンドウを起動できます。
始める前に:
属性が機能に与える影響に関する知識が役立つ場合があります。詳細は、19.5項「コンポーネントへのヘルプの表示」を参照してください。
JavaScriptを使用して外部ヘルプ・ウィンドウを起動する手順:
特定のURLまたはページの起動に、launchHelp
APIを使用するJavaScript関数を作成します。
例19-12に、helpClient.jspx
の起動に使用されるlaunchHelp
関数を示します。
ADF Facesページで、launchHelp
関数を呼び出すクライアント・イベントを持つコンポーネントをドラッグ・アンド・ドロップします。このコンポーネントのclientId
をtrue
に設定する必要があります。
「コンポーネント」ウィンドウの「操作」パネルから「クライアント・リスナー」を、手順2で作成したコンポーネントに子としてドラッグ・アンド・ドロップします。手順1で作成した関数を起動するclientListener
を構成します。clientListener
タグの使用方法の詳細は、4.4項「クライアント・イベントのリスニング」を参照してください。
例19-13に示すコードは、helpClient.jspx
ページを起動するためにbutton
コンポーネントのclick
イベントを割り当てるのに使用されるものです。
例19-13 外部ヘルプ・ウィンドウの起動に使用されるページ・コード
<af:toolbar id="tb1"> <af:button text="Launch help window" id="ctb1" icon="/images/happy_computer.gif"> <af:clientListener method="launchHelp" type="click"/> </af:button> </af:toolbar> <af:resource type="javascript"> function launchHelp(event) { AdfPage.PAGE.launchHelpWindow("helpClient.jspx"); } </af:resource>
検証および変換に関するメッセージを表示する入力コンポーネントにヘルプ・メッセージを追加すると、ADF Facesにより、注意ウィンドウ内に次の順序でメッセージが表示されます。
検証および変換のエラー・メッセージ。
検証および変換のヒント。
入力および選択コンポーネントの場合のみ、説明ヘルプ。panelHeader
コンポーネントの場合、説明ヘルプは常にヘッダーの下に表示されます。
shortDesc
属性の値。
図19-31に、コンバータ、説明ヘルプおよびヒント・メッセージを含むinputDate
コンポーネントを示します。