この章では、インタラクティブなADF Facesコンポーネントの表現力が高いセットであるADFデータ視覚化コンポーネントについて説明します。コンポーネント全般およびその他のADF Facesコンポーネントとの共有機能についても焦点を当てます。この部の他の章では、各コンポーネントの作成およびカスタマイズ方法について説明します。
この章では、次の項目について説明します。
ADFデータ視覚化コンポーネントには、データの表示および分析を行うための非常にグラフィカルな表形式の機能が用意されています。このコンポーネントでは、次の機能が提供されます。
ADFデータ・コントロールの使用をサポートするADF Facesのフル・コンポーネントです。
データ・コントロール・パネル、JSFビジュアル・エディタ、「プロパティ」ウィンドウおよび「コンポーネント」ウィンドウを使用した宣言設計時作成が提供されます。
各コンポーネントに、ライブ・データ・プレビューが用意されています。この機能により、ページをコンパイルおよび実行することなく、設計の効果を確認できるため、非常に有用です。
データ視覚化コンポーネントには、グラフ、ゲージ、ピボット・テーブルとピボット・フィルタ・バー、地理マップ、テーマ・マップ、ガント・チャート、時系列、階層ビューア、ツリーマップおよびサンバーストがあります。
接頭辞dvt:
は、各ゲージ・コンポーネント名の先頭に付いて、そのコンポーネントがADFデータ視覚化ツール(DVT)のタグ・ライブラリに属することを示します。
グラフ・コンポーネントには、棒グラフ、円グラフ、折れ線グラフ、散布図、株価チャートなど、50種類以上のグラフを作成する機能が用意されています。このコンポーネントでは、複数軸の複数データ・ポイントを様々な方法で評価できます。たとえば、一群のグラフにより、あるグループからの結果と他のグループからの結果の比較が容易になります。
グラフ・コンポーネントでは次の種類のグラフを作成できます。
面グラフ(areaGraph
): データが塗りつぶされた面として表されるグラフを作成します。面グラフを使用して、過去12か月の売上げなど、ある期間の傾向を示します。面グラフでは、1つの軸上に最低2グループのデータが必要です。軸には、月などの時間の経過を表すラベルが付けられることがよくあります。
棒グラフ(barGraph
): データが一連の縦棒として表されるグラフを作成します。ある期間の傾向の確認や、複数の地域での異なる製品区分の売上げなど、同一時点での項目の比較に使用します。
棒(横)グラフ(horizontalBarGraph
): Y軸に沿って棒を横向きに表示するグラフを作成します。傾向の表示や値の比較に使用できる向きを持たせるために使用します。
バブル・グラフ(bubbleGraph
): データが円形のデータ・マーカー(バブル)の位置とサイズで表されるグラフを作成します。3種類の値の相関関係を示す場合(データ項目が多数で全体の関係を表示する場合は特に)に使用します。たとえば、バブル・グラフを使用して、従業員の給与(X軸)、経験年数(Y軸)と生産性(バブルのサイズ)をプロットします。このようなグラフでは、生産性を給与および経験と比較して調べることができます。
組合せグラフ(comboGraph
): 異なる種類のデータ・マーカー(棒、線または面)を使用して異なる種類のデータ項目を表すグラフを作成します。棒と線、棒と面、線と面あるいは3つすべての組合せの比較に使用します。
ファンネル・グラフ(funnelGraph
): プロセスのステップに関連するデータを視覚的に表すグラフを作成します。ステップは、横向きの円柱に対する縦向きのスライスとして表されます。特定のステップ(スライス)の実際の値がそのスライスの割当てに近づいた分、スライスが塗りつぶされます。通常、ファンネル・グラフには、時間などのステージ値に対する実績値と目標値が必要です。たとえば、このコンポーネントを使用して、プロセス(販売ルートなど)がステージ(会計年度の四半期)の目標に達するかどうかを確認します。
折れ線グラフ(lineGraph
): データが線、一連のデータ・ポイントまたは線で結ばれたデータ・ポイントとして表されるグラフを作成します。折れ線グラフには、グループ内のメンバーごとに最低2つのポイントを表すデータが必要です。たとえば、月ごとの折れ線グラフには最低2か月必要です。通常、特定の色の線は、アメリカ、ヨーロッパ、アジアなどのデータの各グループに関連付けられています。同一期間の項目の比較に使用します。
パレート・グラフ(paretoGraph
): データが棒と棒の累積割合を示すパーセンテージ線で表されるグラフを作成します。各棒は、交通事故の原因など、異なる不具合の原因を表します。棒は、発生件数の多いものから少ないものの順に並べられます。パレート・グラフは常に二重Yグラフで、1つ目のY軸は棒が表す値に対応し、2つ目のY軸は0%から100%を表し、累積割合の値に対応します。パレート・グラフを使用して、不具合の原因を特定し、比較します。
円グラフ(pieGraph
): 1つのグループのデータが円のセクションとして表され、円が切り分けられたパイのように見えるグラフを作成します。各製品ラインからの収益など、全体に対する各部分の関係の表示に使用します。
レーダー・グラフ(radarGraph
): 円状の折れ線グラフとして表されるグラフを作成します。過去3年間の月ごとの売上げなどの周期的に起こるパターンを表す場合に使用します。
散布図/極グラフ(scatterGraph
): データが、データ・マーカーの位置によって表されるグラフを作成します。散布図を使用して、上位製品の売上げとコストなど、異なる2種類のデータの相関関係を表す場合に使用します。散布図は、多数の項目間の全体的な関連性を示す場合に特に有用です。
スパークチャート(sparkChart
): 傾向や変化を多くの場合、表の列内やテキスト行中で表す簡単な縮小グラフを作成します。スパークチャートは、限られた機能やフォーマット・オプションで、できるだけ多くのデータを表示する簡単なデザインです。
株価チャート(stockGraph
): データが株の高値、安値および終値を示すグラフを作成します。各株価マーカーで3つの異なる値を表示します。
図22-1に、次のものが表示されているアプリケーション・ダッシュボードを示します。
参照線のある棒グラフおよび参照線のない棒グラフ
円グラフ
図22-2に、多数のグラフ・タイプの例が表示されているアプリケーション・ダッシュボードを示します。
図22-3に、表の列で売上げ傾向を表示する折れ線スパークチャートを示します。
その他のユースケースおよび例などの詳細は、第23章「グラフ・コンポーネントの使用方法」を参照してください。
ゲージ(gauge
)・コンポーネントでは、データのグラフィカル表現をレンダリングします。グラフとは異なり、ゲージでは1つのデータ・ポイントにフォーカスして、そのポイントを最小、最大およびしきい値インジケータと比較して調べ、問題のある領域を特定します。
1つのゲージ・コンポーネントでは、使用されるデータに応じて、1つのゲージまたはゲージ・セットを作成できます。
このコンポーネントでは次の種類のゲージを作成できます。
ダイアル・ゲージ: 180度の弧に沿ってメトリック値を示すゲージを作成します。このタイプのゲージには、通常、ゲージがプロットしている値を指す、線または矢印の形のインジケータがあります。
ステータス・メーター・ゲージ:横長の矩形のバーに沿ってタスクの進度または測定値のレベルを示すゲージを作成します。内側の矩形は、外側の矩形に表示された範囲に対する現在の測定値のレベルを示します。
ステータス・メーター・ゲージ(垂直):縦長の矩形のバーに沿ってタスクの進度または測定値のレベルを示すゲージを作成します。
LED(電光表示)ゲージ:重要業績評価指標(KPI)などの測定値をグラフィカルに表すゲージを作成します。LEDゲージには、よい(上矢印)、普通(左または右矢印)、悪い(下矢印)を示す矢印など、数種のグラフィクスが使用できます。
ゲージのしきい値はいくつでも指定できます。ただし、一部のLEDゲージ(矢印または三角形のインジケータを持つものなど)では、指し示す有効な方向の数が限られているため、サポートされるしきい値の数にかぎりがあります。矢印または三角形のインジケータの場合、しきい値の最大数は3です。
図22-4に、倉庫の在庫レベルを表示する、しきい値付きダイアル・ゲージのセットを示します。
図22-5に、しきい値付きステータス・メーター・ゲージ・セットとして表示される同じデータを示します。
その他のユースケースおよび例などの詳細は、第24章「ゲージ・コンポーネントの使用方法」を参照してください。
ピボット・テーブル(pivotTable
)では、行または列での複数層のデータ・ラベルをサポートするグリッドを作成します。オプションのピボット・フィルタ・バー(pivotFilterBar
)をピボット・テーブルと関連付けることで、行または列のエッジで表示されないデータをフィルタ処理できます。行セットなどの適切なデータ・コントロールにバインドされている場合、このコンポーネントでは、グリッド・データの小計と合計を生成するオプションや、実行時のドリル操作もサポートされます。
ピボット・テーブルでは、あるエッジ(行または列)またはピボット・フィルタ・バー(ページ・エッジ)から別のエッジにデータ・ラベルを切り替え、データの表示を変えることができます。たとえば、ピボット・テーブルで最初は、地域内の製品の合計売上げデータを行エッジに表示し、列エッジで年ごとに分類しているとします。実行時に地域と年を切り替えると、数年間の製品の合計売上げデータが、地域ごとに分類されて表示されます。
ピボット・テーブルでは、横方向と縦方向のスクロール、ヘッダーとセルの書式設定およびドラッグ・アンド・ドロップ・ピボットがサポートされています。ピボット・テーブルでは、実行時の行の昇順および降順のグループ・ソートもサポートされます。図22-6に、ピボット・フィルタ・バーのあるピボット・テーブルの例を示します。
その他のユースケースおよび例などの詳細は、第25章「ピボット・テーブル・コンポーネントの使用方法」を参照してください。
地理マップ(map
)では、Oracle ADFにOracle Spatialの機能が提供されます。このコンポーネントでは、ビジネス・データをマップ上に表し、1つのマップ上に複数層の情報を重ね合せることができます。このコンポーネントでは、色テーマ、グラフ・テーマ(棒または円グラフ)および点テーマの同時表示がサポートされます。各タイプのテーマはいくつでも作成でき、マップ・ツールバーを使用して、実行時にテーマを選択できます。
地理マップの例として、各州での製品の人気を色の濃さで示す色テーマ、倉庫の在庫レベルを示す円グラフ・テーマおよび各倉庫の正確な位置を示す点テーマを使用した、アメリカの基準となるマップを考えてみます。この3つの全テーマをアメリカ合衆国の地図に重ね合せると、特定の地域で商品の人気度に応じた十分な在庫があるかどうかを簡単に評価できます。図22-7に、色テーマ、円グラフ・テーマおよび点テーマを使用した地理マップを示します。
その他のユースケースおよび例などの詳細は、第28章「マップ・コンポーネントの使用方法」を参照してください。
テーマ・マップ(thematicMap
)コンポーネントでは、ビジネス・データを定型化された地域内のパターンまたは関連付けられたマーカーとして表し、マップ・ビューア・サービスへの接続は必要ありません。テーマ・マップでは、地理マップでの地理的な詳細なしで、データに焦点を合せます。テーマ・マップは、米国、世界をはじめ、世界の大陸や地域(EMEAやAPACなど)などのあらかじめ作成された基準となるマップとともにパッケージ化されています。テーマ・マップ・コンポーネントでは、基準となるマップを表示するためのマップ・サービスは必要ありません。
たとえば、図22-8に表示されているように、州マップ・レイヤーを備えた基準となる米国のマップを使用して、倉庫と顧客の位置を表示できます(色を使用して高比率、中比率および低比率を示すことが可能)。この例では、データ・バインドされた凡例など、テーマ・マップのデフォルト機能が示されています。
その他のユースケースおよび例などの詳細は、第28章「マップ・コンポーネントの使用方法」を参照してください。
ガント・チャートは(横軸を時間とする)横棒グラフの一種で、リソースまたはタスクが、開始と終了が明確なタイム・フレームに示され、プロジェクトの計画や進捗管理に使用されます。
ガント・チャートは、2つのADFのツリー表とスプリッタの組合せで構成されます。左側の表にはタスクまたはリソースのリストが含まれ、右側の表は1つの列で構成され、特定期間の進捗がグラフ表示されます。
3種類のガント・コンポーネントがあります。
プロジェクト・ガント(projectGantt
): タスクを縦に示し、横方向の時間軸にタスクの期間を棒で示すガント・チャートを作成します。
リソース使用率ガント(resourceUtilizationGantt
): リソースが割当てを上回っているか下回っているかをグラフィカルに示すガント・チャートを作成します。リソースを縦に示し、横方向の時間軸にその割当てとキャパシティ(オプション)を示します。
スケジュール・ガント(schedulingGantt
): リソース管理を示し、手動のスケジュール表をベースにしたガント・チャートを作成します。リソースを縦方向に、対応するアクティビティを横方向の時間軸に表示します。
図22-9 に、スタッフ・リソースとスケジュールを表示したプロジェクト・ガントを示します。
その他のユースケースおよび例などの詳細は、第26章「ガント・チャート・コンポーネントの使用方法」を参照してください。
時系列は、時間軸に沿った時系列アイテムとしてのイベントの表示、時系列に表示可能な期間に対応する移動可能な概要ウィンドウ、および時系列の時間増分全体を示した概要時間軸で構成されます。表示可能な時間範囲は、水平方向のズーム制御を使用して変更できます。イベントに対応する各時系列アイテムは、関連付けられた情報やアクションを表示し、時間軸への引出線と概要時間軸内のマーカーで表されます。
たとえば、図22-10の時系列は、従業員の雇用日を時間順に表示するように構成されています。この例では、各イベントを表す時系列アイテムに、イメージとラベル付きテキストを使用して従業員に関する情報を表示しています。概要ウィンドウは、時系列アイテムを表示する時間範囲を定義します。このウィンドウは、ズーム・コントロールを変更するか、ウィンドウの端の位置を変更して拡大または縮小することでサイズを調整できます。選択が構成されている場合は、時系列アイテム、引出線、および概要パネルのイベント・マーカーが強調表示されます。
2つの時系列を使用して最大2系列のイベントを比較できます。図22-11に、10年間にわたる2人の従業員の変化のイベントを比較した2つの時系列を示します。時系列イベントは、3年を超える期間を表す概要ウィンドウに四半期単位の時間軸を使用して表示されています。概要時間軸の赤い線は現在の日付を示しています。
その他のユースケースおよび例などの詳細は、第27章「時系列コンポーネントの使用方法」を参照してください。
階層ビューア(hierarchyViewer
)は、階層データが図中のリンクされたノードのセットとして表示されるコンポーネントです。ノードおよびリンクは、データの要素および関係に対応します。このコンポーネントでは、パンおよびズーム操作、ノードの展開および縮小、ノード内での簡単なADF Facesコンポーネントのレンダリング、そして階層ビューア・データの検索がサポートされています。階層ビューアの一般的な用途は、図22-12に示すような組織図を表示することです。
その他のユースケースおよび例などの詳細は、第29章「階層ビューア・コンポーネントの使用方法」を参照してください。
treemap
およびsunburst
コンポーネントは、数量的な階層データを、サイズと色で視覚的に表された2つのディメンションで表示します。ツリーマップおよびサンバーストでは、node
と呼ばれる形を使用して、階層内のデータを表します。たとえば、ツリーマップまたはサンバーストを使用して地域の四半期ごとの売上げを表示し、売上げ傾向を特定する場合は、ノードのサイズで各地域の売上げ高を示し、ノードの色でその地域の売上げが四半期で増えたか減ったかを示すことができます。
ツリーマップはノードをネストした矩形のセットとして表示します。ツリーのブランチごとに1つの矩形が割り当てられ、そこにサブブランチを表すより小さな矩形が並べられます。
図22-13に、米国の人口調査データを地域ごとにグループ化して表示し、色の属性で平均所得水準を表したツリーマップを示します。人口の多い州は人口の少ない州より大きなノードで表示されます。
サンバーストは、ノードを矩形レイアウトではなく、放射状に表示し、階層のトップを中心に、深いレベルになると中心から離れて表示します。図22-14に、サンバーストで表示した同じ国勢調査データを示します。
ツリーマップとサンバーストでは、何千ものデータ・ポイントを比較的小さな空間領域に表示できます。各ノードの相対サイズが全体に対する重要度を表しているため、これらのコンポーネントは大規模な階層データ・セットで傾向を特定する場合に適しています。情報の追加ディメンションを表すために、色も使用できます。
階層の1つのレイヤーでサイズと色を使用してデータの2つのメトリックを表示することが主な目的の場合は、ツリーマップを使用します。階層のすべてのレベルでのメトリックを表示する場合、かわりにサンバーストを使用します。エンド・ユーザーが階層を横断してデータの重要な部分を重点的に表示できるように、ドリルを有効にできます。
ツリーマップの情報、およびアプリケーションでのこれらの使用方法の詳細は、第30章「ツリーマップおよびサンバースト・コンポーネントについて」を参照してください。
データ視覚化コンポーネントをデータ・バインドする前に、その他のADF Faces機能を理解しておくと役に立ちます。また、いったんデータ視覚化コンポーネントをページに追加すると、検証やアクセシビリティなどの機能を追加する必要があることに気付く場合があります。データ視覚化コンポーネントで使用されるその他の機能へのリンクは、次のとおりです。
部分ページ・レンダリング: データ視覚化コンポーネントをリフレッシュして、ページの別のコンポーネントで実行されたアクションに基づく新しいデータを表示できます。詳細は、第8章「部分ページ・コンテンツの再レンダリング」を参照してください。
パーソナライズ: ユーザーは実行時にデータ視覚化コンポーネントの表示を変更できますが、ユーザーがカスタマイズできるようにアプリケーションを構成していないかぎり、ユーザーがページを終了するとそれらの値は保持されません。詳細は、第35章「JSFページでのユーザー・カスタマイズの許可」を参照してください。
アクセシビリティ: データ視覚化コンポーネントをアクセス可能にできます。詳細は、第33章「アクセス可能なADF Facesページの開発」を参照してください。
タッチ装置: ADF Facesアプリケーションがタッチ装置で動作することがわかれば、その装置に固有のページを作成する作業がベスト・プラクティスになります。詳細は、付録D「ADF Facesを使用したタッチ装置のWebアプリケーションの作成」を参照してください。
スキンおよびスタイル: アプリケーションに適用するADFスキンを使用するか、スタイル関連のプロパティ(styleClass
またはinlineStyle
)を使用してCSSスタイル・プロパティを直接適用することにより、データ視覚化コンポーネントの外観をカスタマイズできます。詳細は、第31章「スタイルおよびスキンを使用した外観のカスタマイズ」を参照してください。
プレースホルダ・データ・コントロール: 最終的にページのデータ視覚化コンポーネントでADFデータ・バインディングが使用されることがわかっていても、データ・コントロールの準備ができる前にページを開発する必要がある場合、手動でコンポーネントをバインドするのではなく、プレースホルダ・データ・コントロールの使用を検討します。プレースホルダ・データ・コントロールを使用すると、開発済データ・コントロールを使用した場合と同じ宣言的な開発が行われます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「プレースホルダ・データ・コントロールを使用したページの設計」の章を参照してください。
データ視覚化コンポーネントでは、データの配信方法、自動部分ページ・レンダリング(PPR)、コンポーネントを表示するために使用されるイメージ・フォーマット、そしてデータの表示および編集方法など、同じ機能の大部分が共有されています。これらのコンポーネントを使用する前に、この共有機能と、その構成方法を理解することが重要です。
ゲージ、グラフ、ガント・チャート、階層ビューア、ピボット・テーブル、サンバースト、テーマ・マップ、時系列およびツリーマップを含むデータ視覚化コンポーネントは、データ・ソースからのデータ配信方法について構成できます。データは、レンダリング直後、データが使用可能になり次第、またはコンポーネントのシェルがレンダリングされた後の遅延フェッチのいずれかで、コンポーネントに配信できます。デフォルトでは、地理マップを除くすべてのデータ視覚化コンポーネントで、コンテンツが使用可能なときにデータ・ソースから配信されるようになっています。これらのコンポーネントのcontentDelivery
属性は、デフォルトでwhenAvailable
に設定されています。
ガント・チャート、階層ビューア、ピボット・テーブル、サンバースト、時系列およびツリーマップなど、ツリーまたはツリー表モデルに基づくデータ視覚化コンポーネントは仮想化されており、サーバーでコンポーネント用に存在するすべての行、列またはレベルが、クライアントに配信されて表示されるわけではありません。これらのコンポーネントを構成して、一定の数の行、列またはレベルを一度にデータ・ソースからフェッチします。次の属性を使用して、フェッチ・サイズを構成します。
ガント・チャート:
fetchSize
: データ・フェッチ・ブロックの行数を指定します。デフォルト値は25
です。
horizontalFetchSize
: データがフェッチされる水平データ・ウィンドウのサイズをピクセル数で指定します。このデータ・ウィンドウ内のタスク・バーのみがレンダリングされます。垂直方向への仮想化を実現するfetchSize
とは対照的に、horizontalFetchSize
は水平方向への仮想化を実現します。
階層ビューア:
levelFetchSize
: 展開された親ノードごとに、一度にフェッチされて表示される子ノードの数を指定します。階層ビューアに表示される横方向のナビゲーション・コントロールを使用すれば、追加の子ノードをフェッチし、表示できます。デフォルト値は25
です。
ピボット・テーブル:
rowFetchSize
: 1データ・フェッチ・ブロック内の行数を指定します。デフォルト値は25
です。
columnFetchSize
: 1データ・フェッチ・ブロック内の列数を指定します。デフォルト値は10
です。
サンバースト:
displayLevelsChildren
: 初期レンダリング中に表示する子レベルの数を指定します。このプロパティは0ベースです。値0は、ルートの下の子レベルが表示されず、ルート自体は表示されることを意味します。デフォルト値は2で、ルートおよび子の最初の2つのレベルが表示されることを意味します。
時系列:
fetchStartTime
: データを現時点でフェッチする時間範囲の開始を指定します。
fetchEndTime
: データを現時点でフェッチする時間範囲の終了を指定します。
ツリーマップ:
displayLevelsChildren
: 初期レンダリング中に表示する子レベルの数を指定します。このプロパティは0ベースです。値0は、ルートの下の子レベルが表示されず、ルート自体は表示されることを意味します。デフォルト値は2で、ルートおよび子の最初の2つのレベルが表示されることを意味します。
遅延配信の場合、ページにこれらのコンポーネントが1つ以上含まれると、そのページでは最初は標準のライフサイクルが実行されます。ただし、最初のリクエスト時にデータがフェッチされるのではなく、特別な個別の部分ページ・レンダリング(PPR)リクエストが実行され、コンポーネントのフェッチ・サイズの値が返されますページのレンダリング直後であるため、レンダー・レスポンス・フェーズのみがコンポーネントに対して実行され、対応するデータのフェッチおよび表示が可能になります。ユーザーのアクションにより後続のデータ・フェッチが実行される場合(別の行セットのためにピボット・テーブル・グリッド内をスクロールするなど)、別のPPRリクエストが実行されます。
コンテンツが使用可能なときに配信されるようにコンテンツ配信を構成すると、フレームワークでは最初のリクエストの間にデータの可用性をチェックし、使用可能であれば、そのデータがコンポーネントに送信されます。使用可能でない場合、データは遅延配信と同じように、別のPPRリクエスト時にロードされます。
パフォーマンスのヒント: 遅延配信は、データ・フェッチがコストの高い(低速な)操作と予想される場合、たとえば低速で待機時間の長いデータベース接続や、Webサービスなどの低速なデータ・ソースからのデータのフェッチなどに使用する必要があります。ページにデータ視覚化コンポーネント以外のコンポーネントが多数含まれている場合にも、遅延配信を使用します。遅延配信を使用すると、データが使用可能になる前に、初期ページのレイアウト・コンポーネントおよびその他のコンポーネントが最初にレンダリングされます。 ページではデータ視覚化コンポーネントが唯一のコンテキストである場合、あるいはコンポーネントから大量のデータが返される見込みがない場合は、即時配信を使用します。この場合、ユーザー・レスポンス時間がより高速で、サーバーCPU利用率がより高ければ、2番目のリクエストはサーバーに移動しないため、レスポンス時間は遅延配信を使用する場合よりも高速になります(または、場合によっては高速に感じます)。ツリーまたはツリー表モデルに基づくコンポーネントの場合、フェッチ・ブロックとして構成された値のみが最初に返されます。遅延配信と同様に、ユーザーのアクションが後続のデータ・フェッチの原因となる場合は、次の行セットが配信されます。 whenAvailable配信では、最初のレンダリング中にデータが使用可能な場合は即時配信を使用し、データが最初に使用可能でない場合には遅延配信に頼るという柔軟性が高まります。 |
ツリーまたはツリー表に基づくコンポーネントのフェッチ・サイズの設定の詳細は、12.2.2項「コンテンツ配信」を参照してください。
ADF Facesでは部分ページ・レンダリング(PPR)がサポートされており、ページ上で特定のコンポーネントをレンダリングでき、ページ全体をレンダリングする必要がありません。組込みのPPR機能に加えて、1つのコンポーネントがトリガーとして機能し、別のコンポーネントがリスナーとして機能するように依存関係を設定できるクロスコンポーネント・レンダリングを使用するように、コンポーネントを構成できます。詳細は、8.1項「部分ページ・レンダリングについて」を参照してください。
デフォルトでは、ADFデータ視覚化コンポーネントで自動PPRがサポートされ、バックエンド・ビジネス・ロジックの結果として値が変更されるコンポーネントが自動的に再レンダリングされます。アプリケーションでFusionテクノロジ・スタックを使用する場合、任意のページで自動部分ページ・レンダリング機能を有効にできます。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の部分ページ・レンダリングとイテレータ・バインディングに関する必知事項を参照してください。
Fusionテクノロジ・スタックには、アクティブ・データ・サービス(ADS)が含まれ、これはサーバー側のプッシュ・フレームワークで、これによりADF FacesコンポーネントおよびADFデータ視覚化コンポーネントのリアルタイムのデータ更新を提供できます。ADF Facesコンポーネントをデータ・ソースにバインドすると、ADSでは、ブラウザ・クライアントに明示的な更新リクエストを要求することなく、ブラウザ・クライアントにデータ更新をプッシュします。
表22-1に、アクティブ・データをサポートするDVTコンポーネントおよび追加詳細がある場所をリストします。グラフおよびゲージの場合、サポートはグラフおよびゲージ・タイプのサブセットに制限されます。
表22-1 アクティブ・データをサポートするDVTコンポーネント
DVTコンポーネント | コンポーネントの詳細へのリンク |
---|---|
ゲージ |
24.6.6項「アクティブ・データを表示するゲージの構成方法」 |
地理マップ |
28.2.4項「マップ点テーマのアクティブ・データ・サポートに関する必知事項」 |
グラフ |
23.6.1項「アクティブ・データを表示するデータ・バインドされたグラフ・コンポーネントの構成方法」 |
ピボット・テーブルおよびピボット・フィルタ・バー |
25.1.2.11項「アクティブ・データ・サポート(ADS)」 |
サンバースト |
30.1.2.16項「アクティブ・データ・サポート(ADS)」 |
ツリーマップ |
30.1.2.16項「アクティブ・データ・サポート(ADS)」 |
アクティブ・データ・サービスの使用の詳細は、第38章「非同期バックエンドでのアクティブ・データ・サービスの使用方法」を参照してください。
グラフ
、ゲージ
、ツリーマップ
およびサンバースト
・コンポーネントに対して、次のコンテキスト・メニュー・ファセットを使用してコンテキスト・メニューを定義できます。
bodyContextMenu
: コンポーネント内の選択不可能な要素で表示されるコンテキスト・メニューを指定します。
contextMenu
: コンポーネント内の選択可能要素で表示されるコンテキスト・メニューを指定します。
multiSelectContextMenu
: コンポーネント内で複数の要素が選択されるときに表示されるコンテキスト・メニューを指定します。
各ファセットでは、1つの子コンポーネントがサポートされます。これらのファセットすべてを機能させるには、特定のグラフやゲージのタイプ用に選択を可能にし、サポートされるようにする必要があります。コンテキスト・メニューは、現在のところFlashおよびHTML5でのみサポートされています。
技術的な制限のために、Flashのレンダリング形式の使用時には、現在のところコンテキスト・メニューのコンテンツはFlash Playerのコンテキスト・メニューを使用して表示されます。このため、Flash Playerにより定義されたいくつかの制限があります。
Flashでは、コンテキスト・メニューのサブメニューは使用できません。
Flashでは、カスタム・メニュー項目は15に制限されます。コンポーネントの組込みメニュー項目(円グラフのinteractiveSliceBehavior
メニュー項目など)は、制限に考慮されます。
Flashでは、メニュー項目がテキストのみに制限されます。ADF Facesメニューで使用可能なアイコンまたはその他のコントロールは、Flashのメニューでは使用できません。
各メニュー・キャプションには、最低1つの目に見える文字が含まれている必要があります。制御文字、改行文字およびその他の空白文字は無視されます。キャプションは100文字以内です。
別のカスタム項目と同一のメニュー・キャプションは、一致する項目が表示されようとされなかろうと無視されます。メニュー・キャプションは、組込みキャプションまたは既存のカスタム・キャプションと、大文字か小文字か、句読点または空白に関係なく比較されます。
単語はカスタム・キャプションを形成するために他の単語とともに使用できますが、次のキャプションは使用でません: 保存、ズーム・イン、ズーム・アウト、100%、すべて表示l、品質、再生、ループ、巻戻し、進む、戻る、ロードされない映画、バージョン情報、印刷、再描画リージョンの表示、デバッガ、元に戻す、切取り、コピー、貼付け、削除、すべて選択、開く、新規ウィンドウで開くおよびリンクのコピー。
次の単語は、単独または他の単語とともにカスタム・キャプションで表示できません: Adobe、Macromedia、Flash Playerまたは設定。
さらに、Flashからのコンテキスト・メニュー項目のリクエストは同期コールであるため、コンテキスト・メニューの呼出し時には、ELを評価するサーバー・リクエストは不可能です。選択したオブジェクトによって変わるコンテキスト・メニューを提供するために、コンテキスト・メニューのポップアップでcontentDelivery="lazyUncached"
設定が使用される場合は、メニューが事前にフェッチされます。状況により変化するコンテキスト・メニューの場合、これはメニュー定義内のEL式が、異なる選択や通貨の状況により、レンダリング時に繰り返しコールされることを意味します。事前にフェッチされるこれらのコンテキスト・メニューの使用時には、アプリケーションで次のことが認識されている必要があります。
コンテキスト・メニューをどのように表示するかを定義するために使用されるEL式では、長時間かかるまたは遅いコードは実行されません。これは、actionListener
など、メニュー項目が選択された後にコールされるaf:commandMenuItem
属性には当てはまりません。
将来、Flashの制限が解決されれば、Flashのコンテキスト・メニューのかわりにADFのコンテキスト・メニューが表示される可能性があります。アップグレードの互換性を確実にするには、メニューが事前フェッチされる場合、またメニューの呼出し時にEL式が評価される場合のどちらでも、EL式が機能するようなコードを作成する必要があります。アプリケーションが依存するコンポーネントの状態は、selection
とcurrency
のみです。
すべてのデータ視覚化コンポーネントでは、そのコンポーネントについての説明文をサポートする属性が用意されています。スクリーン・リーダー・モードをサポートするには、そのコンポーネントの適切な属性を設定する必要があります。データ視覚化コンポーネントの次の属性を設定します。
shortDesc
属性: すべてのグラフおよびゲージ・コンポーネントに使用します。
summary
属性: ピボット・テーブル、ガント・チャート、地理およびテーマ・マップ、階層ビューア、サンバースト、時系列およびツリーマップの各コンポーネントに使用します。
JDeveloperは、抽象クラスjava.util.ResourceBundle
を使用してロケール固有のリソースを提供し、ADF Facesおよびデータ視覚化コンポーネントをローカライズしやすいようにサポートします。
データ視覚化コンポーネントには、コンポーネントの一部であるテキストが含まれている場合があり、たとえばaf:table
コンポーネントでは、データの初期ロード中にaf:table
コンポーネントがデータをフェッチしている間、あるいはユーザーが表をスクロールしている間に、リソース文字列af_table.LABEL_FETCHING
が、ブラウザで表示されるメッセージ・テキストに使用されます。JDeveloperでは、これらのテキスト・リソースを28言語に自動的に変換します。これらのテキスト・リソースは、リソース・バンドルで参照されます。イタリア語を使用するようにブラウザを設定した場合、コンポーネント内に含まれるテキストはすべて自動的にイタリア語で表示されます。
text
属性を子のgraphTitle
コンポーネントで設定して、pieGraph
コンポーネントのタイトルを定義する場合など、コンポーネントに追加するテキストには、実際のテキストが含まれているリソース・バンドルを指定して、各ロケール版のリソース・バンドルを作成し、<locale-config>
要素を追加して、アプリケーションのfaces-config.xml
ファイルにデフォルトおよびサポートされるロケールを定義する必要があります。また、アプリケーションのすべてのページでリソース・バンドルを使用できるようにするには、アプリケーションのfaces-config.xml
ファイルに<resource-bundle>
要素を追加する必要があります。リソース・バンドルを構成および登録すると、式言語(EL)エディタによりバンドルのキーが表示され、アプリケーション・ページでのバンドルの参照が簡単になります。
ADFコンポーネントに追加するテキストのテキスト・リソースを作成するプロセスを簡略化するために、JDeveloperでは、ビジュアル・エディタの変換可能な文字列に関する、リソース・バンドルの自動同期がサポートされています。ビジュアル・エディタまたは「プロパティ」ウィンドウで直接コンポーネントを編集すると、ベース・リソース・バンドルにテキスト・リソースが自動的に作成されます。詳細は、32.2項「JDeveloperにおける自動リソース・バンドル統合の使用方法」を参照してください。
注意: データベースから取得されたテキストは変換されません。 |
タイトルおよびラベルの子コンポーネントのあるデータ視覚化コンポーネントの場合、属性ドロップダウン・リストを使用して「テキスト・リソースの選択」ダイアログを開き、アプリケーション・リソース・バンドルから変換可能な文字列を選択または追加することにより、テキスト・リソースを作成し、リソース・バンドルに追加することもできます。または、「式ビルダー」を選択して、式言語(EL)エディタを開き、実行時にタイトルまたはラベルのために実行される式を作成することができます。
JDeveloperでは、UI優先開発を使用して任意のデータ視覚化コンポーネントをJSFページに追加し、後からADFデータ・コントロールまたはマネージドBeanを使用して、表示するデータを手動でバインドできます。この場合、「コンポーネント」ウィンドウからページにコンポーネントをドラッグし、「プロパティ」ウィンドウでデータを手動でバインドします。
または、データ優先開発を使用すれば、データ・バインディングを処理するADFデータ・コントロールを使用してコンポーネントを作成できます。この場合、「データ・コントロール」パネルからデータ・コレクションをドラッグし、データ・バインディング・ダイアログに入力してデータの表示を構成します。
たとえば、簡単なUI優先開発を使用してページを設計しているときには、 「コンポーネント」ウィンドウを使用してグラフをJSFページに追加します。ページにグラフ・コンポーネントをドラッグ・アンド・ドロップすると、「グラフの作成」ダイアログに使用可能なグラフ・タイプのカテゴリが説明とともに表示され、グラフの作成を視覚的に支援します。グラフのタイトルおよび凡例のクイックスタート・レイアウトも指定できます。図22-15に、「コンポーネント」ウィンドウから円グラフを作成するときに表示される「円グラフの作成」を示します。
UI優先開発を使用したデータ視覚化コンポーネントの作成、コンポーネント・データ要件の理解、DVT親コンポーネントおよび子コンポーネントの構成、コンポーネントの外観のカスタマイズ、およびコンポーネントへの特殊効果と双方向性の追加の詳細は、このマニュアルのこの部の次の章を参照してください。
注意: グラフとゲージには |
データ・コントロール・パネルからデータ・コントロールをドラッグして、グラフの作成およびデータ・バインドもできます。コンポーネント・ギャラリには使用可能なグラフのカテゴリ、タイプおよび説明が表示され、グラフの設計およびクイック・レイアウトの定義が視覚的にサポートされます。図22-16に、データ・コントロールからの折れ線グラフ作成時に表示されるコンポーネント・ギャラリを示します。
図22-17に、データ・コレクション属性をグラフ・コンポーネントにバンドするために使用する「折れ線グラフの作成」ダイアログを示します。
すべてのデータ視覚化コンポーネントは、ADFデータ・コントロールのデータ・コレクションにバインドできます。データ・コントロールへのこれらのコンポーネントのデータ・バインドの詳細および例は、次の参照先を参照してください。
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたグラフの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたゲージの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたピボット・テーブルの作成に関する項
注意: JDeveloperでは、「ピボット・テーブルの作成」ウィザードでピボット・テーブルのデータ・バインドおよび構成のための宣言サポートが提供されます。 |
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされた地理マップの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたテーマ・マップの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたガント・チャートの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされた時系列の作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされた階層ビューアの作成に関する項
『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータ・バインドされたツリーマップおよびサンバーストの作成に関する項