また、変更が永続データ・リポジトリ内で永続されるようにアプリケーションを構成することもできます。そのように構成することで、アプリケーションを再度使用するときに変更内容が残っていることになります。この永続性を許可するには、完全Fusionテクノロジ・スタックの一部であるOracle Metadata Service (MDS)を使用する必要があります。MDSおよび完全Fusionスタックを使用することで、次の追加の永続性機能も提供されます。
追加の属性値の永続
検索条件の永続
UIのドラッグ・アンド・ドロップ操作の結果の永続
実行時のページ上のコンポーネントの並替え
実行時のページのコンポーネントおよびファセットの追加と削除
Oracle MDSの詳細と使用手順は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「実行時のユーザーによるカスタマイズの許可」の章を参照してください。
この章の内容は次のとおりです。
ADFアプリケーションのユーザーは、ADF Facesコンポーネントに対してパーソナライズの変更を加えることかできます。この変更がユーザー・セッションの間、永続するかどうかは、アプリケーションの構成によって異なります。ただし、UIの様々な側面のために、ADF Facesでは暗黙的なパーソナライズがサポートされています。
多くのADF Facesコンポーネントで、ユーザーは実行時にコンポーネントの表示を変更できます。たとえば、ユーザーは、panelSplitter
コンポーネントのスプリッタの位置を変更したり、パネルに詳細コンテンツを表示するかどうかを変更できます。デフォルトでは、これらの変更はページ・リクエストの間有効です。ユーザーがページを終了して再度表示すると、コンポーネントはデフォルトの構成で表示されます。ただし、変更がユーザーのセッションの間永続するようアプリケーションを構成できます。このようにすると、ユーザーがアプリケーションを終了するまで、変更されたままになります。
表38-1に、デフォルトのパーソナライズ機能を提供するコンポーネントごとの変更を示します。
表38-1 暗黙的に永続する属性値
コンポーネント | 属性 | UIの特性 | 実行時の効果 |
---|---|---|---|
|
|
コンテンツの表示または非表示 |
ユーザーは、ヘッダーのアイコンを使用してコンテンツを表示または非表示にできます。ユーザーの直近のアクションに基づいて、詳細コンテンツが表示または非表示になります。 |
|
|
複数のコンポーネントの高さ |
複数の |
|
|
パネルのサイズ |
ユーザーはパネルのサイズを変更でき、そのサイズは保持されます。 |
|
|
スプリッタの面を閉じる |
ユーザーはスプリッタのいずれかの面を閉じることができます。閉じられた状態は、ユーザーによる最終の構成として保持されます。 |
|
|
スプリッタの位置 |
パネルのスプリッタの位置が、ユーザーによって最後に移動された位置のままになります。 |
|
|
選択された編集モード |
エディタは、ユーザーが最後に選択したモード(WYSIWYGまたはソース)で表示されます。 |
|
|
アクティブな日 |
現在の表示でアクティブとみなされる日は、アクティブな日のままになります。 |
|
|
アクティビティのビューの表示 |
現在アクティビティを表示しているビュー(日、週、月またはリスト)が保持されます。 |
|
|
パネル・ウィンドウまたはダイアログの高さ |
ユーザーは |
|
|
パネル・ウィンドウまたはダイアログの幅 |
ユーザーは |
|
|
インライン・ダイアログの高さ |
インライン・ポップアップ・ダイアログがADF Facesダイアトグ・フレームワークまたはADFタスクフローを使用して起動された場合、ユーザーが手動でダイアログのサイズを変更すると、ダイアログを起動したコマンド・コンポーネント上の関連の |
|
|
インライン・ダイアログの幅 |
インライン・ポップアップ・ダイアログがADF Facesダイアトグ・フレームワークまたはADFタスクフローを使用して起動された場合、ユーザーが手動でダイアログのサイズを変更すると、ダイアログを起動したコマンド・コンポーネント上の関連の |
|
|
列の順序の変更 |
ADF Facesの列は、ユーザーが実行時に並べ替えることができます。 |
|
|
列のスクロールの可否 |
ADF Facesの列は、スクロールされないように固定できます。列の |
|
|
列のテキストをラップするかどうか |
列のコンテンツを折り返すかどうかを指定します。ユーザーがこの属性値を変更できるようにするコードを作成する必要があります。たとえば、ユーザーが値を |
|
|
選択した列 |
選択された列は、ユーザーが最後に選択した列に基づきます。 |
|
|
列を表示するかどうか |
ユーザーの直近のアクションに基づいて、列が表示または非表示になります。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。たとえば、ユーザーが値を |
|
|
列幅 |
列の幅が、ユーザーが最後に設定したサイズのままになります。 |
|
|
フィルタの表示または非表示 |
ADF Facesの表には、ユーザーが属性値で表の行をフィルタ処理できるコンポーネントを含めることができます。フィルタを使用するよう構成されている表では、ユーザーの直近のアクションに基づいて、フィルタは表示または非表示になります。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。たとえば、ユーザーが値を |
|
|
グラフの時間軸にデータを表示する時間範囲のモード |
グラフの時間軸上に表示されるデータの時間範囲は、すべてのデータ視覚化グラフ・コンポーネントに指定できます。デフォルトでは、すべてのデータが表示されます。時間範囲は、最後または最初のデータ・ポイントからの相対的時間範囲、または明示的時間範囲にも設定できます。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。たとえば、グラフの時間範囲を選択するためのドロップダウン・リストを作成できます。 |
|
|
ガント・チャートの凡例の表示または非表示 |
データ視覚化プロジェクトの凡例、リソース使用率およびスケジュール・ガント・チャート・コンポーネントは、情報パネル内で表示されるかされないかのいずれかです。ユーザーがこの属性値を変更できるように(汎用を表示するための非表示および表示のボタン)コードを記述することが必要になります。 |
|
|
階層ビューアのレイアウト・オプション |
データ視覚化階層ビューア・コンポーネントでは、上から下への垂直、ツリー、円、放射など、9つの階層レイアウト・オプションをサポートしています。ユーザーは、マップ・コントロール・パネルでレイアウトを変更でき、最後に選択されたレイアウトが保持されます。 |
|
|
マップのズーム・レベル |
このデータ視覚化地理マップ・コンポーネント属性では、マップの初期ズーム・レベルを指定します。ズーム・レベルは、ベース・マップの一部としてマップ・キャッシュ・インスタンスで定義されます。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。 |
|
|
マップの空間参照ID |
このデータ視覚化地理マップコンポーネント属性では、startingXおよびstartingYによって定義されるマップの中心位置や、点テーマのすべての点を含む、マップの全座標のsrid(空間参照ID)を指定します。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。 |
|
|
マップのX座標およびY座標 |
このデータ視覚化地理マップ・コンポーネント属性では、マップの中心位置のXおよびY座標を指定します。座標のsridはsrid属性で指定します。srid属性が指定されていない場合、その値はマップの中心位置の経度であると想定されます。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。 |
|
|
ガント・チャートのスプリッタの位置 |
パネルのスプリッタの位置が、ユーザーによって最後に移動された位置のままになります。 |
|
|
ガント・チャートの時間軸 |
プロジェクト、リソース使用率およびスケジュールのガント・チャートのデータ視覚化コンポーネントでは、ガント・チャートの主時間軸および副時間軸の指定にこのファセットを使用します。タイム・スケール( |
|
|
グラフの開始日と終了日 |
データ視覚化の面、棒、コンボ、折れ線、散布およびバブルの各グラフ・コンポーネントでは、この子タグ属性を使用して、タイム・セレクタの開始および終了日付を明示的に指定します。この属性では、値バインディングのみがサポートされています。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。 |
|
|
ツリーマップ階層のレイアウト・オプション |
データ視覚化のツリーマップ・コンポーネントは、正方形(可能なかぎり正方形となるように配置されるノード)および水平または垂直のスライスとダイス(最初にツリーマップの幅方向に沿い水平または垂直に配置され、次いでツリーマップの高さ方向に水平または垂直に配置されるノード)を含む、3つの階層レイアウト・オプションをサポートしています。ユーザーがこのレイアウトを変更できるようにするコードを記述する必要があります。 |
アプリケーションは、表38-1に示した属性の値をユーザー・セッション中ずっと保持できるように構成できます。たとえば、アプリケーションに表が含まれており、ユーザーが列の幅をコンテンツが1行ですべて表示されるように調整するとします。セッションの変更永続性を使用するようにアプリケーションを構成すると、ユーザーがそのページから去り、次に戻ったときに、列の幅は以前の設定のままで開かれます。
注意:
追加機能の場合、変更が永続データ・リポジトリで保持されるようにアプリケーションを構成でき、その結果、変更はそのユーザーに対して複数のセッションにわたり持続します。この永続的な持続性を可能にするには、フルFusionテクノロジ・スタックを使用する必要があります。詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「実行時でのユーザー・カスタマイズの許可」の章を参照してください。
ADFアプリケーションのユーザーが実行するユーザー・インタフェースのカスタマイズが永続するかどうかは、web.xml
の構成設定によって決まります。この設定が有効な場合、ユーザーのセッション中であれば、ユーザー・インタフェースが変わってもADF Facesが維持されます。
ユーザーによるセッションへの変更をアプリケーションで永続させるには、カスタマイズが有効になるようプロジェクトを構成する必要があります。
web.xml
ファイルでのカスタマイズが有効になるようアプリケーションを構成します。
セッション変更永続性を実装する手順:
セッションへの変更を保存するよう選択すると、JDeveloperでCHANGE_PERSISTENCE
コンテキスト・パラメータがweb.xml
ファイルに追加され、値がsession
に設定されます。このコンテキスト・パラメータでは、永続性の処理に使用されるChangeManager
クラスが登録されます。次の例に、web.xml
ファイルのコンテキスト・パラメータを示します。
<context-param> <param-name>org.apache.myfaces.trinidad.CHANGE_PERSISTENCE</param-name> <param-value>session</param-value> </context-param>
セッションへの変更を永続させるようアプリケーションを構成している場合、ビューIDに従って索引付けされたデータ構造内のセッション変数に変更が記録されます。RENDER_RESPONSE JSFフェーズが開始する前に、指定されたコンポーネントに対する変更がタグ・アクション・クラスで検索され、追加されたときと同じ順序で変更が適用されます。つまり、セッションの間に登録された変更は、同じセッションの後続のリクエストでのみ適用されます。
セッション永続性を使用すると、変更は特定のセッションのviewId
に対して、コンポーネントで記録されリストアされます。その結果、その変更がフラグメントまたはページのテンプレートに属するコンポーネントで適用されると、ページでそのフラグメントまたはテンプレートが使用される範囲でのみ適用されます。そのフラグメントまたはテンプレートが使用されるすべてのページに及ぶわけではありません。たとえば、プロジェクトにpageOne.jsf
およびpageTwo.jsf
JSFページがあり、どちらにもregion.jsff
ページ・フラグメントで定義されているフラグメントが含まれていて、さらにはshowDetail
コンポーネントが含まれているとします。pageOne.jsf
JSFページがレンダリングされ、showDetail
コンポーネント上のdisclosed
属性が変更されると、暗黙的な属性変更が記録され、pageOne.jsf
ページに対してのみ適用されます。ユーザーがpageTwo.jsf
ページに移動した場合、属性の変更は適用されません。