Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド 11gリリース1(11.1.1) B52029-02 |
|
![]() 戻る |
![]() 次へ |
この章では、実行時に特定のUIにユーザーが行った変更をセッションの間永続させる方法について説明します。
また、変更が永続データ・リポジトリ内で永続されるようにアプリケーションを構成することもできます。そのように構成することで、アプリケーションを再度使用するときに変更内容が残っていることになります。この永続性を許可するには、完全Fusionテクノロジ・スタックの一部であるOracle Metadata Service(MDS)を使用する必要があります。MDSおよび完全Fusionスタックを使用することで、次の追加の永続性機能も提供されます。
追加の属性値の永続
検索条件の永続
UIのドラッグ・アンド・ドロップ操作の結果の永続
実行時のページ上のコンポーネントの並替え
実行時のページのコンポーネントおよびファセットの追加と削除
Oracle MDSを使用するための詳細および手順は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「実行時のユーザー・カスタマイズの許可」の章を参照してください。
この章に含まれる項は次のとおりです。
多くのADF Facesコンポーネントで、ユーザーは実行時にコンポーネントの表示を変更できます。たとえば、ユーザーは、panelSplitter
コンポーネントのスプリッタの位置を変更したり、パネルに詳細コンテンツを表示するかどうかを変更できます。デフォルトでは、これらの変更はページ・リクエストの間有効です。ユーザーがページを終了して再度表示すると、コンポーネントはデフォルトの構成で表示されます。ただし、変更がユーザーのセッションの間永続するようアプリケーションを構成できます。このようにすると、ユーザーがアプリケーションを終了するまで、変更されたままになります。
表31-1に、デフォルトのパーソナライズ機能を提供するコンポーネントごとの変更を示します。
表31-1 暗黙的に永続する属性値
コンポーネント | 属性 | 実行時の効果 |
---|---|---|
|
|
ユーザーは、ヘッダーのアイコンを使用してコンテンツを表示または非表示にできます。ユーザーの直近のアクションに基づいて、詳細コンテンツが表示または非表示になります。 |
|
|
複数のshowDetailItemコンポーネントの高さは、それぞれのflex属性の相対値によって決まります。大きいflex値が設定されているshowDetailItemコンポーネントは、小さい値が設定されているコンポーネントよりも高くなります。これらの比率を変更でき、新しい値は永続します。 |
|
|
ユーザーはパネルのサイズを変更でき、そのサイズは保持されます。 |
|
|
ユーザーはスプリッタのいずれかの面を閉じることができます。閉じられた状態は、ユーザーによる最終の構成として保持されます。 |
|
|
パネルのスプリッタの位置が、ユーザーによって最後に移動された位置のままになります。 |
|
|
エディタは、ユーザーが最後に選択したモード(WYSIWYGまたはソース)で表示されます。 |
|
|
現在の表示でアクティブとみなされる日は、アクティブな日のままになります。 |
|
|
現在アクティビティを表示しているビュー(日、週、月またはリスト)が保持されます。 |
|
|
ADF Facesリッチ・クライアント列は、ユーザーが実行時に並べ替えることができます。 |
|
|
ADF Facesリッチ・クライアント列は、スクロールされないように固定できます。列の |
|
|
列のコンテンツを折り返すかどうかを指定します。ユーザーがこの属性値を変更できるようにするコードを作成する必要があります。たとえば、ユーザーが値を |
|
|
選択された列は、ユーザーが最後に選択した列に基づきます。 |
|
|
ユーザーの直近のアクションに基づいて、列が表示または非表示になります。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。たとえば、ユーザーが値を |
|
|
列の幅が、ユーザーが最後に設定したサイズのままになります。 |
|
|
ADF Facesリッチ・クライアントの表には、ユーザーが属性値で表の行をフィルタ処理できるコンポーネントを含めることができます。フィルタを使用するよう構成されている表では、ユーザーの直近のアクションに基づいて、フィルタは表示または非表示になります。ユーザーがこの属性値を変更できるようにするコードを記述する必要があります。たとえば、ユーザーが値を |
ユーザーによるセッションへの変更をアプリケーションで永続させるには、カスタマイズが有効になるようプロジェクトを構成する必要があります。
web.xml
ファイルでのカスタマイズが有効になるようアプリケーションを構成します。
セッション変更永続性を実装する手順:
アプリケーションのWebプロジェクトをダブルクリックし、「プロジェクト・プロパティ」ダイアログを開きます。左側のツリーで、「ADFビュー」ノードを選択します。
「ADFビュー」ページで、「ユーザー・カスタマイズの有効化」チェック・ボックスをアクティブにし、「セッションの継続時間」ラジオ・ボタンを選択します。
セッションへの変更を保存するよう選択すると、JDeveloperでCHANGE_PERSISTENCE
コンテキスト・パラメータがweb.xml
ファイルに追加され、値がsession
に設定されます。このコンテキスト・パラメータでは、永続性の処理に使用されるChangeManager
クラスが登録されます。例31-1に、web.xml
ファイルのコンテキスト・パラメータを示します。
セッションへの変更を永続させるようアプリケーションを構成している場合、ビューIDに従って索引付けされたデータ構造内のセッション変数に変更が記録されます。後続の表示またはビューのリストア・フェーズでページがリクエストされるたびに、指定されたコンポーネントに対する変更がタグ・アクション・クラスで検索され、追加されたときと同じ順序で変更が適用されます。つまり、セッションの間に登録された変更は、同じセッションの後続のリクエストでのみ適用されます。
セッション永続性を使用する場合、指定されたセッションのviewId
に対してコンポーネントで変更が記録およびリストアされます。このため、フラグメントまたはページ・テンプレートに属するコンポーネントで変更が適用される場合、フラグメントまたはテンプレートを使用するページ範囲にのみ変更が適用され、フラグメントまたはテンプレートを使用するページ全体には適用されません。たとえば、プロジェクトにpageOne.jspx
およびpageTwo.jspx
JSFページがあり、showDetail
コンポーネントを含むregion.jsff
ページ・フラグメントで定義されているフラグメントが両方に含まれるとします。pageOne.jspx
JSFページがレンダリングされ、showDetail
コンポーネントのdisclosed
属性が変更されると、暗黙的に属性の変更が記録され、pageOne.jspx
ページにのみ適用されます。ユーザーがpageTwo.jspx
ページに移動すると、属性の変更は適用されません。