ADF Facesイベントおよびリスナーについて

標準のJSFコンポーネントと同様に、ADF Facesでは、コマンド・コンポーネントがアクティブになるとアクション・イベントが配信され、入力コンポーネントのローカル値が変更されると値の変更イベントが配信されます。アクション・イベントおよび値の変更イベントに加え、ADF Facesコンポーネントでは他の種類のイベントも配信されます。これらのイベントとそれらに関連するイベント・リスナーは、次のとおりです。

イベント・クラス イベント・リスナー イベントの生成時期
DisclosureEvent DisclosureListener

treeまたはtreeTableのノードの開閉時。このイベントには、ソース・コンポーネントとその状態(開いているまたは閉じている)に関する情報が記載されます。isExpanded()メソッドによって、ツリー・ノードを開く(表示する)か、閉じる(非表示にする)かを判別するブール値が戻されます。treeコンポーネントの詳細は、「ADF Facesのツリーについて」を参照してください。treeTableコンポーネントの詳細は、「ADF Facesのツリー表について」を参照してください。

DisclosureEventは、ユーザーがshowDetailshowDetailHeaderまたはshowDetailItemを開いたとき、または閉じたときにも生成されます。これらのコンポーネントの詳細は、「showDetail、showDetailHeaderおよびshowDetailItemコンポーネントについて」を参照してください。

DisclosureAllEvent N/A

treeTableのすべてのサブツリーの開閉時。このイベントには、ソース・コンポーネントとその状態(すべて開いているまたはすべて閉じている)に関する情報が記載されます。isExpandedAll()メソッドによって、すべてのサブツリーを開く(表示する)か、または閉じる(非表示にする)かを判別するブール値が戻されます。treeTableコンポーネントの詳細は、「ADF Facesのツリー表について」を参照してください。

FocusEvent FocusListener treeTable内のサブツリーのフォーカスを変更したとき(つまり、フォーカス・インまたはフォーカス・アウトしたとき)。イベントの配信前に、フォーカスの変更先要素が現行ノードになります。ツリー表のフォーカス機能の詳細は、「ADF Facesのツリー表について」を参照してください。
LaunchEvent LaunchListener

ActionSourceを実装するコンポーネントがダイアログを起動しようとしたとき。このイベントには、ソース・コンポーネントおよびダイアログの起動時に表示するUIViewRootに関する情報が記載されます。

getDialogParameters()メソッドによって、ダイアログに渡すパラメータのマップが戻されます。getViewRoot()メソッドによって、ダイアログの起動時に表示するUIViewRootが戻されます。getWindowProperties()メソッドによって、ダイアログの構成に使用するUIヒントのマップが戻されます。ダイアログの機能の詳細は、「ADF Facesのダイアログ・フレームワークについて」を参照してください。

PollEvent PollListener

pollコンポーネントによって一定の間隔でサーバーがポーリングされるとき。このコンポーネントによって、interval属性で指定した時間間隔(ミリ秒)の経過後に、イベントがトリガーされます。

ポール・リスナーでは、モデルの更新、コンポーネントのリフレッシュまたはダイアログの起動が可能です。ポール・イベントからダイアログを起動する方法の詳細は、「ADF Facesのポーリングについて」を参照してください。pollをトリガーとして使用してコンポーネントをリフレッシュする方法の詳細は、「プログレス・バーについて」を参照してください。

RangeChangeEvent RangeChangeListener

table範囲またはselectRangeChoiceBarのユーザー・アクティビティを変更したとき。このイベントには、ソース・コンポーネントおよびレンジ値に関する情報が記載されます。

このイベントは、範囲の古い開始値と新しい開始値、および範囲の古い終了値と新しい終了値を戻します。終了値は範囲に含まれず、開始値は範囲に含まれます。たとえば、古い範囲が最初の5項目を対象としていた場合、古い開始値は0(ゼロ)で、古い終了値は5です。メソッドは、getNewEnd()getOldEnd()getNewStart()およびgetOldStart()です。

範囲操作機能の詳細は、「ADF Faces Tableについて」を参照してください。

ReturnEvent ReturnListener

ダイアログが正常に完了したとき。このイベントには、ソース・コンポーネントおよび戻り値に関する情報が記載されます。

getReturnValue()メソッドおよびgetReturnParameters()メソッドによって、値、および追加の戻りパラメータのマップがそれぞれ戻されます。ダイアログの機能の詳細は、「ADF Facesのダイアログ・フレームワークについて」を参照してください。

SelectionEvent SelectionListener

単一選択表(TableSelectOne)または複数選択表(TableSelectMany)の選択の状態が変化したとき。このイベントには、ソース・コンポーネント、および選択された行と選択解除された行に関する情報が記載されます。

getSelectedKeys()メソッドおよびgetUnselectedKeys()メソッドによって、選択された行および選択解除された行がそれぞれ戻されます。行選択機能の詳細は、「ADF Faces Tableについて」を参照してください。

SortEvent SortListener

ソートまたはソート解除するために表の列が選択されたとき。このイベントには、ソース・コンポーネント、およびコレクションのソート基準に関する情報が記載されます。

getSortCriteria()メソッドによって、空のjava.util.List、またはコレクションのソート基準であるoracle.adf.view.faces.model.SortCriterionオブジェクトのjava.util.Listが戻されます。ソート機能の詳細は、「ADF Faces Tableについて」を参照してください。

AttributeChangeEvent AttributeChangeListener

拡張レンダラによって、コンポーネントのレンダラ固有の属性がユーザー操作の結果として変更されたことが検出されたとき。ADF Faces Renderersでは、AttributeChangeEventsがキューイングされないことに注意してください。将来は、ADF Faces Rich Renderersでこの機能が利用される予定です。このAPIは、汎用プロパティ変更通知または汎用コンポーネント・イベント変更に使用しないでください。

注意: すべてのADF Facesイベント・クラスがjavax.faces.event.FacesEventを拡張します。これらの関連するイベント・リスナー・インタフェースは、javax.faces.event.FacesListenerを拡張します。ADF Facesの各イベントとイベント・リスナーの詳細は、oracle.adf.view.faces.eventに関するJavadocを参照してください。

JSFのイベント・リスナーと同様に、ADF Facesのイベント・リスナーは、イベント・ソース・オブジェクトによってイベントが起動されたときに通知の対象となるクラスです。イベント・リスナーは、関連するイベントを受け取るコンポーネントに登録されます。

すべてのADF Facesイベント・クラスにはprocessListener()メソッドがあり、このメソッドは、指定のイベント・リスナーに、適切なメカニズムでイベントをブロードキャストします。このメカニズムは通常、イベント処理メソッドをコールし、イベントをパラメータとして渡します。すべてのADF Facesイベント・リスナーにはprocessEvent()メソッドがあります。Eventはイベント・タイプを表します。

たとえば、LaunchListenerは、単一の引数としてLaunchEventのインスタンスを受け取り、次のイベント処理メソッドを含んでいます。

    public void processLaunch (LaunchEvent event)    

また、ReturnListenerは、単一の引数としてReturnEventのインスタンスを受け取り、次のイベント処理メソッドを含んでいます。

    public void processReturn (ReturnEvent event)     

ADF Facesイベントを処理するために、バッキングBeanにイベント・リスナー・メソッドを実装できます。イベント・リスナー・メソッドは、唯一のパラメータとしてイベントを受け取り、voidを戻す(イベント・リスナーのprocessEvent()メソッドと同じシグネチャの)publicメソッドであることが必要です。

...
public void commandButton_launchListener(LaunchEvent LaunchEvent)
{

// Event code here...

}
...
public void commandButton_returnListener(ReturnEvent ReturnEvent)
{

// Event code here...

}
...    

イベント・リスナー・メソッドをコンポーネントに登録するには、そのコンポーネントのイベント・リスナー属性を、イベントを処理するバッキングBeanメソッドにバインドします。次に例を示します。

<af:commandButton text="commandButton 1"
                  action="#{backing_untitled1.commandButton_action}"
                  launchListener="#{backing_untitled1.commandButton_launchListener}"
                  returnListener="#{backing_untitled1.commandButton_returnListener}"/>    

次の表に、ADF Facesコンポーネントが生成できるイベント、およびリスナー・メソッドにバインドできるコンポーネント・リスナー属性を示します。

コンポーネント リスナー属性 生成可能なイベント
commandButtoncommandLinkcommandMenuItem actionListenerreturnListenerlaunchListener ActionEventReturnEventLaunchEvent
inputFileinputHiddeninputTextselectBooleanCheckboxselectBooleanRadioselectManyListboxselectManyShuttleselectOneChoiceselectOneListboxselectOneRadioselectOrderShuttle valueChangeListener ValueChangeEvent
selectInputColorselectInputDateselectInputText actionListenerreturnListenervalueChangeListener ActionEventReturnEventValueChangeEvent
poll pollListener PollEvent
progressIndicator actionListener ActionEvent
singleStepButtonBar nextActionListenerpreviousActionListener ActionEvent
selectRangeChoiceBar rangeChangeListener RangeChangeEvent
showDetailshowDetailHeadershowDetailItemmenuTreepagetree disclosureListener DisclosureEvent
table rangeChangeListenerdisclosureListenerdisclosureAllListenersortListenerselectionListener RangeChangeEventDisclosureEventDisclosureAllEventSelectionEventSortEvent
treeTable focusListenerrangeChangeListenerdisclosureListenerdisclosureAllListenerselectionListener

FocusEventDisclosureEventDisclosureAllEventSelectionEvent

RangeChangeEvent(複数ルートのtreeTableのみ)

注意: フォーム(af:formまたはh:form)には、ビルトイン・イベント機能を備えたADF Facesコンポーネントが含まれている必要があります。

デフォルトでは、コンポーネントまたは親コンポーネントのimmediate属性がtrueに設定されていないかぎり、イベントは、アプリケーションの起動フェーズまたは検証処理フェーズで配信されます。immediate属性がtrueの場合、イベントは、可能な最も早いフェーズ(通常はリクエスト値の適用フェーズ)で配信されます。

singleStepButtonBarの場合、アクション・イベントは、前のステップに戻る場合はリクエスト値の適用フェーズで配信され、先のステップに進む場合はアプリケーションの起動フェーズで配信されます。

ADF Facesコンポーネントでは、クライアントのブラウザおよびプラットフォームで部分ページ・レンダリングがサポートされている場合は、そのイベントに対して部分ページ・レンダリングを使用します。部分ページ・レンダリングの詳細は、「ADF Facesでの部分ページ・レンダリングのサポートについて」を参照してください。


メソッド・バインディングについて
Beanメソッドへのコンポーネントのバインド