この章では、ADF Facesについてを、フレームワークの機能およびライブラリ内の各コンポーネント・タイプの概要も含めて説明します。
この章の内容は次のとおりです。
このマニュアルおよびこの他のマニュアルに、なじみのない用語が出てきた場合は、「用語集」で定義を確認してください。
ADF FacesはOracle ADFエンドツーエンドのフレームワークのビュー/コントローラ部分です。ADF Facesには、150を超えるAjax対応コンポーネントがあり、堅牢でレスポンシブな、使いやすいアプリケーションを迅速に構築することができます。
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の詳細は、http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html
を参照してください。
ADF Facesは、エンタープライズ・アプリケーションを作成するための商用Javaフレームワークを提供するJavaServer Faces (JSF) 2.0フレームワークの上に構築されています。Java EEおよびWeb標準ベースのアプリケーションを生産的(宣言的、視覚的)な形で開発できます。
ADF Facesフレームワークは、次のような豊富な機能を提供します。
JavaServer Faces (JSF) 2.0以降の仕様に従った構造
現在、ADF Facesでは、Faceletを含むJSF 2.2がサポートされます。新しいJSF 2.0機能のいくつかには、ADF Facesのパラレル機能があります。JSF 2.0で導入された機能、およびADF FacesとJSF 2.0間に存在する機能の重複を理解するには、http://www.oracle.com/technetwork/developer-tools/adf/learnmore/adffaces-jsf20-190927.pdf
のOTNで、ホワイトペーパー『JavaServer Faces 2.0 Overview and Adoption Roadmap in Oracle ADF Faces and Oracle JDeveloper 11g』を参照してください。
デスクトップまたはタブレット・デバイスのブラウザで実行するように最適化された完全な機能を備えた大型のリッチ・コンポーネント。
ライブラリには、ジオメトリ管理レイアウト・コンポーネント、テキストおよび選択コンポーネント、ソート可能な階層データ表およびツリー、メニュー、ページ内ダイアログ、汎用コントロールなど、150を超えるリッチ・インターネット・アプリケーション(RIA)コンポーネントが用意されています。「ADF Facesコンポーネント」を参照してください。ADF Facesのタブレットでの実行の詳細は、「ADF Facesを使用したタッチ装置のWebアプリケーションの作成」を参照してください。
普及したAjaxサポート
ADF Facesの多くのコンポーネントに、AJAXスタイル機能がネイティブで実装されています。たとえば、ADF Facesの表コンポーネントでは、表のスクロール、列ヘッダーのクリックによる表のソート、1つまたは複数の行の選択マークおよび表の特定の行の拡張を実行でき、すべてサーバーへのページ送信を必要とせずコーディングも不要です。「部分ページ・コンテンツの再レンダリング」で説明しているように、ADF Facesでは、この機能は部分ページ・レンダリング(PPR)として実装されます。
開発者がJavaScriptを記述する必要性の限定
ADF Facesは、複雑なJavaScriptの大部分をユーザーから隠します。かわりに、コンポーネントの動作は宣言的に制御します。ADF Facesを使用して、リッチで機能的、魅力的なWeb UIを、JavaScriptの使用をまったく必要としない宣言的な方法で実装できます。
たとえば、ADF Facesに独自の機能を追加する必要がある場合に、クライアント側コンポーネントとイベント・フレームワークを使用して簡単に追加できる場合があります。「ADF Facesクライアント側アーキテクチャの使用方法」を参照してください。
サーバーとクライアント両方で拡張されたライフサイクル
ADF Facesは、標準JSF 2.0ページ・リクエストのライフサイクルを拡張します。この例として、クライアント側の値のライフサイクル、複数のフォームを使用する必要なしに独立して送信可能な領域をページに作成できるサブフォーム・コンポーネント、処理用に送信されるページの部分を限定できる最適化されたライフサイクルなどがあります。「ADF FacesでのJSFライフサイクルの使用」を参照してください。
イベント処理
ADF Facesは標準JSFイベント処理手法に準拠し、完全なクライアント側イベント・モデルを提供します。イベントの詳細は、「イベントの処理」を参照してください。
部分ページ・ナビゲーション
ADF Facesアプリケーションは、ナビゲーションにPPRを使用できるため、ページ間をナビゲートする際にJavaScriptライブラリおよびスタイルシートを繰り返しロードする必要がなくなります。「部分ページ・ナビゲーションの使用」を参照してください。
クライアント側の検証、変換およびメッセージング
ADF Facesバリデータは、クライアント側とサーバー側の両方で動作できます。クライアント側バリデータはJavaScriptで記述され、クライアント側で捕捉された検証エラーはサーバーとの間をラウンドトリップしなくても処理できます。「入力の検証および変換」を参照してください。
サーバー側プッシュおよびストリーミング
「非同期バックエンドでのアクティブ・データ・サービスの使用方法」で説明しているように、ADF Facesフレームワークには、ADF Facesコンポーネントのリアルタイム・データ更新を提供できるようにするサーバー側プッシュが含まれます。
アクティブなジオメトリ管理
ADF Facesには、使用可能なスクリーン領域をどの程度利用できているかをコンポーネントが判断できるようにするクライアント側ジオメトリ管理機能が用意されています。フレームワークで、レイアウト・コンポーネントにブラウザのサイズ変更アクティビティが通知され、これによってコンポーネントで子のサイズ変更が可能になります。これによって、特定のコンポーネントを拡大または縮小し、ブラウザの使用可能な領域を満たすことができます。「ジオメトリ管理およびコンポーネントの拡大」を参照してください。
高度なテンプレートおよび宣言コンポーネント
「フラグメント、ページ・テンプレート、コンポーネントの作成および再利用」で説明しているように、ページ・テンプレートやページ・フラグメント、複数のコンポーネントで構成され、アプリケーション全体で使用できるコンポジット・コンポーネントを作成できます。
高度な視覚化コンポーネント
ADF Facesには、動的チャート、グラフ、ゲージ、および基礎となるデータをリアルタイムで表示するその他のグラフィックをレンダリングできるFlashおよびPNG対応のコンポーネントである、データ視覚化のコンポーネントが含まれます。「ADFデータ視覚化コンポーネントの使用」を参照してください。
スキニング
ADF Facesコンポーネントのスキンを実装することで、独自のルック・アンド・フィールを作成できます。Oracleでは、スキンを宣言的に作成および変更できるツールを用意しています。「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
出力モード
「異なる出力モードの使用方法」で説明しているように、通常はHTMLブラウザで表示されるページを電子メールや印刷ビューなどの別のモードで表示できるように設定可能です。
国際化
「ページの国際化およびローカライズ」で説明しているように、異なるロケールを使用するようJSFページまたはアプリケーションを構成し、ユーザーのブラウザの言語設定に基づいて適切な言語を表示できます。
アクセシビリティ
ADF Facesコンポーネントには、スクリーン・リーダーなどの一連のアシスティブ・テクノロジと連携するビルトイン・アクセシビリティが備わっています。ADF Facesのアクセシビリティ監査ルールにより、アクセス可能なHTMLマークアップを使用して、アクセス可能なイメージ、表、フレーム、フォーム、エラー・メッセージおよびポップアップ・ウィンドウの作成が指示されます。「アクセス可能なADF Facesページの開発」を参照してください。
ユーザー駆動のパーソナライズ
多くのADF Facesコンポーネントで、ユーザーは実行時にコンポーネントの表示を変更できます。デフォルトでは、これらの変更はページ・リクエストの間有効です。ただし、変更がユーザーのセッションの間永続するようアプリケーションを構成できます。「JSFページでのユーザー・カスタマイズの許可」を参照してください。
ドラッグ・アンド・ドロップ
「ドラッグ・アンド・ドロップ機能の追加」で説明しているように、ADF Facesフレームワークでは、1つのコンポーネントを別のコンポーネントにドラッグ・アンド・ドロップすることで、データを別の場所に移動できます。
他のOracle ADFテクノロジとの統合
ADF Facesは、ADFビジネス・コンポーネント、ADFコントローラ、ADFデータ・バインディングなどの他のOracle ADFテクノロジと組み合せて使用できます。ADF FacesをADFテクノロジ・スタックと組み合せて使用する方法の詳細は、Oracle Application Development FrameworkによるFusion Webアプリケーションの開発で、データバインドされたWebユーザー・インタフェースの作成を参照してください。
Oracle JDeveloperとの統合された宣言的開発
JDeveloperは、ビジュアル・レイアウト・エディタ、ADF Facesコンポーネントをページにドラッグ・アンド・ドロップできる「コンポーネント」ウィンドウ、コンポーネント機能を宣言的に構成する「プロパティ」ウィンドウなどのADF Facesコンポーネントの宣言的サポートが組み込まれた機能豊富な開発環境です。JDeveloperの使用の詳細は、「ADF FacesとJDeveloperの概要」を参照してください。
ADF Facesのコンポーネントには、レイアウト、バックグラウンド、データ・ビュー、色など、アプリケーションでカスタマイズと再利用が可能な組込み機能を持つ数多くのユーザー・インタフェースが追加されています。
ADF Facesコンポーネントは、通常次のカテゴリに分けられます。
レイアウト・コンポーネント
レイアウト・コンポーネントはページのレイアウトを決めるコンテナとして機能し、ADF Facesレイアウト・コンポーネントには、コンテンツを表示または非表示にできたり、セクション、リストまたは空の領域を提供するインタラクティブなコンテナ・コンポーネントも含まれます。JDeveloperにはビルトインのクイックスタート・レイアウトが用意されており、希望するページの外観に基づいて宣言的にレイアウト・コンポーネントをページに追加できます。レイアウト・コンポーネントとジオメトリ管理の詳細は、「Webページ上のコンテンツの編成」を参照してください。
標準のレイアウト・コンポーネントに加えて、ADF Facesは次の特殊なレイアウト・コンポーネントも提供します。
エクスプローラ・タイプのメニューおよびツールバー・コンテナ: メニュー・バーとツールバーを作成できます。ユーザーは、メニューやツールバーを使用して、指定されたオプションのリスト(メニューの場合)またはボタン(ツールバーの場合)を選択し、アプリケーションへ変更を加えることができます。「メニュー、ツールバーおよびツールボックスの使用方法」を参照してください。
セカンダリ・ウィンドウ: ポップアップ・ウィンドウまたはダイアログにデータを表示します。ADF Facesでのダイアログ・フレームワークには、親ページとは別の新しいポップアップ・ブラウザ・ウィンドウに表示されるプロセスのためのページの作成をサポートするインフラストラクチャが用意されています。複数のダイアログで個々の制御フローを持ちます。「ポップアップ・ダイアログ、メニューおよびウィンドウの使用方法」を参照してください。
コア構造コンポーネントおよびタグ: ドキュメント、フォーム、サブフォーム、リソースなどのページおよびレイアウトを作成するために必要なタグを提供します。これらのタグについては、様々な章で説明しています。
テキストおよび選択コンポーネント
これらのコンポーネントでは、単純な出力テキストコンポーネントから選択コンポーネントなどの入力コンポーネント、さらに複雑な値リスト・コンポーネントにテキストを表示できます。
出力コンポーネント: テキストおよびグラフィックを表示し、ビデオや音楽クリップも再生できます。ADF Facesには、回転カルーセルにグラフィックを表示できるカルーセル・コンポーネントも含まれます。「出力コンポーネントの使用」を参照してください。
入力コンポーネント: ユーザーによるデータの入力と、色の選択や日付の選択などのその他の情報の入力を可能にします。ADF Facesには、ユーザーが処理するデータを選択できる簡単なリストやファイル・アップロード・コンポーネントも用意されています。入力コンポーネントの詳細は、「入力コンポーネントの使用およびフォームの定義」を参照してください。
値リスト(LOV)コンポーネント: 特定の値の検索やお気に入りとしてマークされている値の表示などの機能を含むモデルによって駆動されるリストからのユーザーによる選択を可能にします。このLOVコンポーネントは、あるオブジェクトの属性の移入に使用されるフィールドが、実際はデータベースの外部キー関係のように他のオブジェクトのリスト内に含まれる場合に有用です。「値リスト・コンポーネントの使用方法」を参照してください。
データ・ビュー
ADF Facesには、複雑なデータを表示するための様々な方法が用意されています。
表およびツリー・コンポーネント: 表または展開可能なツリー形式で構造化されたデータを表示します。ADF Facesの表には、列データのソート、データのフィルタリング、行の詳細コンテンツの表示/非表示などの機能があります。ツリーには、展開/縮小動作が組み込まれています。ツリー表は、表の機能をツリーのデータ階層機能と組み合せたものです。「表、ツリー、およびその他のコレクションベースのコンポーネントの使用」を参照してください。
データ視覚化コンポーネント: ユーザーは、複雑なデータをリアルタイムで表示および分析できます。ADFデータ視覚化コンポーネントには、グラフ、ゲージ、ピボット・テーブル、時系列、地理マップ、テーマ・マップ、ガント・チャート、階層ビューア、および行セットや階層データ(組織図など)を表示するツリーマップとサンバーストが含まれます。「ADFデータ視覚化コンポーネントの概要」を参照してください。
問合せコンポーネント: ユーザーによるデータの問合せを可能にします。問合せコンポーネントでは、複数の検索基準、基準の動的な追加と削除、選択可能な検索演算子、すべてに一致/いずれかに一致の選択、シード済または保存済の検索、基本または拡張モードおよび検索のパーソナライズがサポートされます。「問合せコンポーネントの使用方法」を参照してください。
特殊表示コンポーネント: Calendarコンポーネントでは、アクティビティが日、週、月またはリスト表示に表示されます。ユーザーがアクティビティを作成、編集、削除できるポップアップ・コンポーネントを実装できます。「Calendarコンポーネントの使用方法」を参照してください。カルーセル・コンポーネントを使用すると、スクロール可能な方法でイメージのコレクションを表示できます。「カルーセルでのイメージの表示」を参照してください。
メッセージングとヘルプ: フレームワークでは、入力コンポーネントのツールチップ、メッセージおよびヘルプを表示する機能と、アプリケーションのグローバル・メッセージを表示する機能が提供されます。ヘルプ・フレームワークを使用すると、アプリケーション全体で再使用可能なメッセージを作成できます。Javaクラス、マネージドBean、XLIFFファイルまたは標準プロパティ・ファイルを使用して、ヘルプ・プロバイダを作成します。または、外部HTMLベースのヘルプ・システムにリンクを設定できます。「ヒント、メッセージおよびヘルプの表示」を参照してください。
階層型メニュー・モデル: ADF Facesには、階層式のページをナビゲートするためのタブやブレッドクラムなどのアイテムをレンダリングするナビゲーション・コンポーネントが用意されています。フレームワークで、メタデータ・ファイルとともに使用し、各ページに適切な数の階層レベルを生成するためのすべての情報と、各レベルに属するナビゲーション・アイテムを含むXMLベースのメニュー・モデルが提供されます。「共有コンポーネントでの作業」を参照してください。
汎用コントロール
汎用コントロールには、ナビゲートに使用されるコンポーネントと、イメージおよびアイコンを表示するコンポーネントが含まれます。
ナビゲーション・コンポーネント: ユーザーのあるページから次のページへの移動を可能にします。ADF Facesナビゲーション・コンポーネントには、ボタンとリンク、および異なるメニューのレベルを介してアクセスされる、より複雑な階層型のページ・フローを作成する機能が含まれます。「共有コンポーネントでの作業」を参照してください。
イメージおよびアイコン・コンポーネント: アイコンのようにシンプルなイメージからビデオのように複雑なイメージまで表示できます。「出力コンポーネントの使用」を参照してください。
操作
コンポーネントではありませんが、これらのタグはコンポーネントと連動して、ドラッグ・アンド・ドロップ、検証、各種イベント・リスナーなどの追加機能を提供します。これらの操作タグについては、それらを使用するコンポーネントとともに説明されています。