Oracle® Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11g リリース2(11.1.2.4.0) B66719-05 |
|
![]() 前 |
![]() 次 |
この章では、ADF Facesについてを、フレームワークの機能およびライブラリ内の各コンポーネント・タイプの概要も含めて説明します。
この章では、次の項目について説明します。
Oracle ADF Facesは、150を超えるAjax対応JavaServer Faces (JSF)コンポーネントと完結したフレームワークのセットであり、これらはすべてJSF 2.0規格に基づいて構築されています。当初、ADF FacesはJSFコンポーネントの第1世代のセットであり、それ以降、Apache Software Foundationに無償提供されました。このセットはApache MyFaces Trinidadと呼ばれ(現在はApache Software Foundationから入手できます)、現在のADF Facesの基盤となっています。
ADF FacesとJSF 2.0を使用すると、JavaScriptのハード・コーディングは最小限でAjaxベースのアプリケーションを比較的簡単に実装できます。たとえば、株式アナリストがドラッグ・アンド・ドロップを使用して新しい株式シンボルを表ビューに追加し、高度なプッシュ・テクノロジを使用してサーバー・モデルで更新できる株式トレーダのダッシュボード・アプリケーションを簡単に構築できます。新しい取引を行うために、株式トレーダは実際のページを離れることなく、クライアントの新規株式の購入プロセスをナビゲートできます。この機能の大部分は、ADF Facesコンポーネントのサポートが組み込まれた機能豊富な開発環境であるOracle JDeveloperを使用して宣言的に実装できるため、Webアプリケーションの表示レイヤーを迅速かつ簡単に構築できます。
注意: ADF Facesは標準JSFテクノロジに準拠しているため、このガイドではJSF標準に付加する点、または異なる点を主に説明しています。このため、ADF Facesを使用して開発を始める前に、JSFがどのように機能するかについて、基本的な知識を得ておくことをお薦めします。JSFの詳細は、 |
ADF Facesフレームワークは、次のような豊富な機能を提供します。
JSF 2.0仕様への組込み
ADF Facesでは、Faceletを含むJSF 2.0がサポートされます。新しいJavaServer Faces 2.0機能のいくつかには、ADF Facesのパラレル機能があります。JSF 2.0で導入された新機能、およびADF FacesとJSF 2.0間に存在する機能の重複を理解するには、OTNで『JavaServer Faces 2.0 Overview and Adoption Roadmap in Oracle ADF Faces and Oracle JDeveloper 11g』ホワイトペーパーを参照してください。
デスクトップまたはタブレット・デバイスのブラウザで実行するように最適化された完全な機能を備えた大型のリッチ・コンポーネント。
ライブラリには、ジオメトリ管理レイアウト・コンポーネント、テキストおよび選択コンポーネント、ソート可能な階層データ表およびツリー、メニュー、ページ内ダイアログ、汎用コントロールなど、150を超えるリッチ・インターネット・アプリケーション(RIA)コンポーネントが用意されています。詳細は、第1.3項「ADF Facesコンポーネント」を参照してください。タブレットで実行するADF Facesの詳細は、付録D「ADF Facesを使用したタッチ・デバイス用のWebアプリケーションの作成」を参照してください。
普及したAjaxサポート
ADF Facesの多くのコンポーネントに、AJAXスタイル機能がネイティブで実装されています。たとえば、ADF Facesの表コンポーネントでは、表のスクロール、列ヘッダーのクリックによる表のソート、1つまたは複数の行の選択マークおよび表の特定の行の拡張を実行でき、すべてサーバーへのページ送信を必要とせずコーディングも不要です。ADF Facesでは、この機能は部分ページ・レンダリング(PPR)として実装されます。詳細は、第8章「部分ページ・コンテンツの再レンダリング」を参照してください。
開発者がJavaScriptを記述する必要性の限定
ADF Facesは、複雑なJavaScriptの大部分をユーザーから隠します。かわりに、コンポーネントの動作は宣言的に制御します。ADF Facesを使用して、リッチで機能的、魅力的なWeb UIを、JavaScriptの使用をまったく必要としない宣言的な方法で実装できます。
たとえば、ADF Facesに独自の機能を追加する必要がある場合に、クライアント側コンポーネントとイベント・フレームワークを使用して簡単に追加できる場合があります。詳細は、第4章「ADF Facesクライアント側アーキテクチャの使用方法」を参照してください。
サーバーとクライアント両方で拡張されたライフサイクル
ADF Facesは、標準JSF 2.0ページ・リクエストのライフサイクルを拡張します。この例として、クライアント側の値のライフサイクル、複数のフォームを使用する必要なしに独立して送信可能な領域をページに作成できるサブフォーム・コンポーネント、処理用に送信されるページの部分を限定できる最適化されたライフサイクルなどがあります。詳細は、第5章「ADF FacesでのJSFライフサイクルの使用」を参照してください。
イベント処理
ADF Facesは標準JSFイベント処理手法に準拠し、完全なクライアント側イベント・モデルを提供します。イベントの詳細は、第6章「イベントの処理」を参照してください。
部分ページ・ナビゲーション
ADF Facesアプリケーションは、ナビゲーションにPPRを使用できるため、ページ間をナビゲートする際にJavaScriptライブラリおよびスタイルシートを繰り返しロードする必要がなくなります。詳細は、8.4項「部分ページ・ナビゲーションの使用」を参照してください。
クライアント側の検証、変換およびメッセージング
ADF Facesバリデータは、クライアント側とサーバー側の両方で動作できます。クライアント側バリデータはJavaScriptで記述され、クライアント側で捕捉された検証エラーはサーバーとの間をラウンドトリップしなくても処理できます。詳細は、第7章「入力の検証および変換」を参照してください。
サーバー側プッシュおよびストリーミング
ADF Facesフレームワークには、ADF Facesコンポーネントのリアルタイム・データ更新を提供できるようにするサーバー側プッシュが含まれます。詳細は、第35章「非同期バックエンドでのアクティブ・データ・サービスの使用方法」を参照してください。
アクティブなジオメトリ管理
ADF Facesには、使用可能なスクリーン領域をどの程度利用できているかをコンポーネントが判断できるようにするクライアント側ジオメトリ管理機能が用意されています。フレームワークで、レイアウト・コンポーネントにブラウザのサイズ変更アクティビティが通知され、これによってコンポーネントで子のサイズ変更が可能になります。これによって、特定のコンポーネントを拡大または縮小し、ブラウザの使用可能な領域を満たすことができます。詳細は、9.2.1項「ジオメトリ管理およびコンポーネントの拡大」を参照してください。
高度なテンプレートおよび宣言コンポーネント
ページ・テンプレートやページ・フラグメント、複数のコンポーネントで構成され、アプリケーション全体で使用できるコンポジット・コンポーネントを作成できます。詳細は、第10章「フラグメント、ページ・テンプレート、コンポーネントの作成および再利用」を参照してください。
高度な視覚化コンポーネント
ADF Facesには、動的チャート、グラフ、ゲージ、および基礎となるデータをリアルタイムで表示するその他のグラフィックをレンダリングできるFlashおよびPNG対応のコンポーネントである、データ視覚化のコンポーネントが含まれます。詳細は、第V部「ADFデータ視覚化コンポーネントの使用」を参照してください。
スキニング
ADF Facesコンポーネントのスキンを実装することで、独自のルック・アンド・フィールを作成できます。Oracleでは、スキンを宣言的に作成および変更できるスタンドアロン・スキン・エディタを用意しています。詳細は、第28章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
出力モード
通常はHTMLブラウザで表示されるページを電子メールや印刷ビューなどの別のモードで表示できるように設定可能です。詳細は、第34章「異なる出力モードの使用」を参照してください。
国際化
異なるロケールを使用するようJSFページまたはアプリケーションを構成し、ユーザーのブラウザの言語設定に基づいて適切な言語を表示できます。詳細は、第29章「ページの国際化およびローカライズ」を参照してください。
アクセシビリティ
ADF Facesコンポーネントには、スクリーン・リーダーなどの様々な障害支援技術と連動するアクセシビリティが組み込まれています。ADF Facesのアクセシビリティ監査ルールにより、アクセス可能なHTMLマークアップを使用して、アクセス可能なイメージ、表、フレーム、フォーム、エラー・メッセージおよびポップアップ・ウィンドウの作成が指示されています。詳細は、第30章「アクセス可能なADF Facesページの開発」を参照してください。
ユーザー駆動のパーソナライズ
多くのADF Facesコンポーネントで、ユーザーは実行時にコンポーネントの表示を変更できます。デフォルトでは、これらの変更はページ・リクエストの間有効です。ただし、変更がユーザーのセッションの間永続するようアプリケーションを構成できます。詳細は、第32章「JSFページでのユーザー・カスタマイズの許可」を参照してください。
ドラッグ・アンド・ドロップ
ADF Facesフレームワークでは、ユーザーは、1つのコンポーネントを別のコンポーネントにドラッグ・アンド・ドロップすることで、データを別の場所に移動できます。詳細は、第33章「ドラッグ・アンド・ドロップ機能の追加」を参照してください。
他のOracle ADFテクノロジとの統合
ADF Facesは、ADFビジネス・コンポーネント、ADFコントローラ、ADFデータバインディングなどの他のOracle ADFテクノロジと組み合せて使用できます。ADF FacesとADFテクノロジ・スタックを組み合せた使用の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』を参照してください。
Oracle JDeveloperとの統合された宣言的開発
JDeveloperは、ビジュアル・レイアウト・エディタ、ADF Facesコンポーネントをページにドラッグ・アンド・ドロップできるコンポーネント・パレット、コンポーネント機能を宣言的に構成するプロパティ・インスペクタなどのADF Facesコンポーネントの宣言的サポートが組み込まれた機能豊富な開発環境です。JDeveloperの使用の詳細は、第3章「ADF FacesとJDeveloperの概要」を参照してください。
ADF Facesコンポーネントは、通常次のカテゴリに分けられます。
レイアウト・コンポーネント
レイアウト・コンポーネントはページのレイアウトを決めるコンテナとして機能し、ADF Facesレイアウト・コンポーネントには、コンテンツを表示または非表示にできたり、セクション、リストまたは空の領域を提供するインタラクティブなコンテナ・コンポーネントも含まれます。JDeveloperにはビルトインのクイックスタート・レイアウトが用意されており、希望するページの外観に基づいて宣言的にレイアウト・コンポーネントをページに追加できます。レイアウト・コンポーネントとジオメトリ管理の詳細は、第9章「Webページ上のコンテンツの編成」を参照してください。
標準のレイアウト・コンポーネントに加えて、ADF Facesは次の特殊なレイアウト・コンポーネントも提供します。
エクスプローラ・タイプのメニューおよびツールバー・コンテナ: メニュー・バーとツールバーを作成できます。ユーザーは、メニューやツールバーを使用して、指定されたオプションのリスト(メニューの場合)またはボタン(ツールバーの場合)を選択し、アプリケーションへ変更を加えることができます。詳細は、第16章「メニュー、ツールバーおよびツールボックスの使用方法」を参照してください。
セカンダリ・ウィンドウ: ポップアップ・ウィンドウまたはダイアログにデータを表示します。ADF Facesでのダイアログ・フレームワークには、親ページとは別の新しいポップアップ・ブラウザ・ウィンドウに表示されるプロセスのためのページの作成をサポートするインフラストラクチャが用意されています。複数のダイアログで個々の制御フローを持ちます。詳細は、第15章「ポップアップ・ダイアログ、メニューおよびウィンドウの使用方法」を参照してください。
コア構造コンポーネントおよびタグ: ドキュメント、フォーム、サブフォーム、リソースなどのページおよびレイアウトを作成するために必要なタグを提供します。これらのタグについては、様々な章で説明しています。
テキストおよび選択コンポーネント
これらのコンポーネントでは、単純な出力テキストコンポーネントから選択コンポーネントなどの入力コンポーネント、さらに複雑な値リスト・コンポーネントにテキストを表示できます。
出力コンポーネント: テキストおよびグラフィックを表示し、ビデオや音楽クリップも再生できます。ADF Facesには、回転カルーセルにグラフィックを表示できるカルーセル・コンポーネントも含まれます。詳細は、第18章「出力コンポーネントの使用」を参照してください。
入力コンポーネント: ユーザーによるデータの入力と、色の選択や日付の選択などのその他の情報の入力を可能にします。ADF Facesには、ユーザーが処理するデータを選択できる簡単なリストやファイル・アップロード・コンポーネントも用意されています。入力コンポーネントの詳細は、第11章「入力コンポーネントの使用およびフォームの定義」を参照してください。
値リスト(LOV)コンポーネント: 特定の値の検索やお気に入りとしてマークされている値の表示などの機能を含むモデルによって駆動されるリストからのユーザーによる選択を可能にします。このLOVコンポーネントは、あるオブジェクトの属性の移入に使用されるフィールドが、実際はデータベースの外部キー関係のように他のオブジェクトのリスト内に含まれる場合に有用です。詳細は、第13章「値リスト・コンポーネントの使用方法」を参照してください。
データ・ビュー
ADF Facesには、複雑なデータを表示するための様々な方法が用意されています。
表およびツリー・コンポーネント: 表または展開可能なツリー形式で構造化されたデータを表示します。ADF Facesの表には、列データのソート、データのフィルタリング、行の詳細コンテンツの表示/非表示などの機能があります。ツリーには、展開/縮小動作が組み込まれています。ツリー表は、表の機能をツリーのデータ階層機能と組み合せたものです。詳細は、第12章「表およびツリーの使用」を参照してください。
データ視覚化コンポーネント: ユーザーは、複雑なデータをリアルタイムで表示および分析できます。ADFデータ視覚化コンポーネントには、グラフ、ゲージ、ピボット・テーブル、地理マップ、ガント・チャート、および階層データをリンクされたノードのセットとして表示する組織図などの階層ビューアが含まれます。詳細は、第21章「ADFデータ視覚化コンポーネントについて」を参照してください。
問合せコンポーネント: ユーザーによるデータの問合せを可能にします。問合せコンポーネントでは、複数の検索基準、基準の動的な追加と削除、選択可能な検索演算子、すべてに一致/いずれかに一致の選択、シード済または保存済の検索、基本または拡張モードおよび検索のパーソナライズがサポートされます。詳細は、第14章「問合せコンポーネントの使用方法」を参照してください。
特殊表示コンポーネント: Calendarコンポーネントでは、アクティビティが日、週、月またはリスト表示に表示されます。ユーザーがアクティビティを作成、編集、削除できるポップアップ・コンポーネントを実装できます。詳細は、第17章「Calendarコンポーネントの使用方法」を参照してください。カルーセル・コンポーネントでは、イメージのコレクションをスクロールバー形式で表示できます。詳細は、18.6項「カルーセルでのイメージの表示」を参照してください。
メッセージングとヘルプ: フレームワークでは、入力コンポーネントのツールチップ、メッセージおよびヘルプを表示する機能と、アプリケーションのグローバル・メッセージを表示する機能が提供されます。ヘルプ・フレームワークでは、アプリケーション全体で再利用できるメッセージを作成できます。Javaクラス、マネージドBean、XLIFFファイルまたは標準プロパティ・ファイルを使用してヘルプ・プロバイダを作成するか、外部HTMLベースのヘルプ・システムにリンクできます。詳細は、第19章「ヒント、メッセージおよびヘルプの表示」を参照してください。
階層型メニュー・モデル: ADF Facesには、階層式のページをナビゲートするためのタブやブレッドクラムなどのアイテムをレンダリングするナビゲーション・コンポーネントが用意されています。フレームワークで、メタデータ・ファイルとともに使用し、各ページに適切な数の階層レベルを生成するためのすべての情報と、各レベルに属するナビゲーション・アイテムを含むXMLベースのメニュー・モデルが提供されます。詳細は、第20章「ナビゲーション・コンポーネントの使用」を参照してください。
汎用コントロール
汎用コントロールには、ナビゲートに使用されるコンポーネントと、イメージおよびアイコンを表示するコンポーネントが含まれます。
ナビゲーション・コンポーネント: ユーザーのあるページから次のページへの移動を可能にします。ADF Facesナビゲーション・コンポーネントには、ボタンとリンク、および異なるメニューのレベルを介してアクセスされる、より複雑な階層型のページ・フローを作成する機能が含まれます。詳細は、第20章「ナビゲーション・コンポーネントの使用」を参照してください。
イメージおよびアイコン・コンポーネント: アイコンのようにシンプルなイメージからビデオのように複雑なイメージまで表示できます。詳細は、第18章「出力コンポーネントの使用」を参照してください。
操作
コンポーネントではありませんが、これらのタグはコンポーネントと連動して、ドラッグ・アンド・ドロップ、検証、各種イベント・リスナーなどの追加機能を提供します。これらの操作タグについては、それらを使用するコンポーネントとともに説明されています。