Below article will help to get some concept about how contextual events work.
af:region tag has a property that require pointer to region model which determine the current View to be displayed. The region model is exposed by bounded task flow through a specific task flow binding added to the page definition file of the page that contains the af:region tag.
Contextual event is functionality of binding layer. The communication allows to pass message object from a producing event to a listening method.
The Event Producer can be defined by event binding element that we declaratively create in page definition file of the page that contains the component region event or the event producer can be defined on the attribute binding that either listen for value change or for currency change if user select different row in table. A producer has a name that identify producer when it map to listening part and optionaly it may have a custom payload defined which over write the native event that is passed by default. The producer consis of a Rasie condition that specify when the event should be raised. The DCBindingContainerValueChangeEvent is native event object for all adf boud input field component.
The Event Consumer is a method that we expose in adf binding layer, that means exposes in data control, that means either in VO or AM. This methos may have zero, one or multiple argument. Once we have a method binding defined on a page definition file of the view that is suppose to listen for the produced event then we can use it for the dispatched event.
Now once we have producer event and consumer method, its time to bind them together. We do this using adf binding medium. The task flow binding is a binding container. The page definition file of the view exposing the bounded task flow is also a binding container. The page definition file of the parent page that contains the region also represent a binding container.Now the parent page binding container has a refrence to task flow binding which has a refrence to the container used by the fragment of the page fragment. So we have heirarchy like tree of conncted active container that we can use the binding layer to navigate to or point to. This is what the dispatching does. Dispatchnig has the ability to connect an event producer in an active binding container with an event listner in an active container.
When an event is first raised it is propogated to local container which also has refrence to component rasing the event. On that container it will looke for the event method. If that event method is available then event will be propagted. Else, next it goes to parent container and looks for event method and continues this way till it reaches the top most binding container.On its way up it broadcat the event to all named producer configuration. Then on the way back it broad cast the event to all the other active binding container that are not directly in the parent chain of raising event.
Hmmm...enough theory its time for some hands on..Good Luck!!!!
*Please don't forget to post any correction, as i am also a newbie :) ....
af:region tag has a property that require pointer to region model which determine the current View to be displayed. The region model is exposed by bounded task flow through a specific task flow binding added to the page definition file of the page that contains the af:region tag.
Contextual event is functionality of binding layer. The communication allows to pass message object from a producing event to a listening method.
The Event Producer can be defined by event binding element that we declaratively create in page definition file of the page that contains the component region event or the event producer can be defined on the attribute binding that either listen for value change or for currency change if user select different row in table. A producer has a name that identify producer when it map to listening part and optionaly it may have a custom payload defined which over write the native event that is passed by default. The producer consis of a Rasie condition that specify when the event should be raised. The DCBindingContainerValueChangeEvent is native event object for all adf boud input field component.
The Event Consumer is a method that we expose in adf binding layer, that means exposes in data control, that means either in VO or AM. This methos may have zero, one or multiple argument. Once we have a method binding defined on a page definition file of the view that is suppose to listen for the produced event then we can use it for the dispatched event.
Now once we have producer event and consumer method, its time to bind them together. We do this using adf binding medium. The task flow binding is a binding container. The page definition file of the view exposing the bounded task flow is also a binding container. The page definition file of the parent page that contains the region also represent a binding container.Now the parent page binding container has a refrence to task flow binding which has a refrence to the container used by the fragment of the page fragment. So we have heirarchy like tree of conncted active container that we can use the binding layer to navigate to or point to. This is what the dispatching does. Dispatchnig has the ability to connect an event producer in an active binding container with an event listner in an active container.
When an event is first raised it is propogated to local container which also has refrence to component rasing the event. On that container it will looke for the event method. If that event method is available then event will be propagted. Else, next it goes to parent container and looks for event method and continues this way till it reaches the top most binding container.On its way up it broadcat the event to all named producer configuration. Then on the way back it broad cast the event to all the other active binding container that are not directly in the parent chain of raising event.
Hmmm...enough theory its time for some hands on..Good Luck!!!!
*Please don't forget to post any correction, as i am also a newbie :) ....
No comments:
Post a Comment