Class PostAddToViewEvent
- All Implemented Interfaces:
Serializable
When an instance of this event is passed to
SystemEventListener.processEvent(SystemEvent) or ComponentSystemEventListener.processEvent(ComponentSystemEvent), the listener
implementation may assume that the source of this event instance is a UIComponent instance and
that either that instance or an ancestor of that instance was just added to the view. Therefore, the implementation
may assume it is safe to call UIComponent.getParent(), UIComponent.getClientId(), and other methods that
depend upon the component instance being added into the view.
The implementation must guarantee that Application.publishEvent(FacesContext, Class, Object) is called,
immediately after any UIComponent instance is added to the view hierarchy except in the
case where ResponseStateManager.isPostback(FacesContext) returns true at the same
time as FacesContext.getCurrentPhaseId() returns
PhaseId.RESTORE_VIEW. When both of those conditions are met,
Application.publishEvent(FacesContext, Class, Object) must not be called.
The implementation must guarantee that Application.publishEvent(FacesContext, Class, Object) is called in the
following cases.
-
Upon the initial construction of the view, when each instance is added to the view.
-
On a non-initial rendering of the view, if a component is added to the view by the View Declaration Language implementation as a result of changes in evaluation result of Jakarta Expression Language expressions referenced by VDL tags such as
c:if,ui:include, and other tags that dynamically influence the assembly of the view. -
If a component is programmatically added to the view using the Java API directly. For example, user code manually adds children using
comp.getChildren().add(), wherecompis aUIComponent.
Special consideration for UIViewRoot on postback requests: for postback requests where
the view is being restored from state, the event must be published if and only if partial state saving is enabled.
This ensures that event listeners are notified when a restored view root is placed into the view, while avoiding
duplicate event firing for full state saving scenarios where the view is completely reconstructed from saved state.
- Since:
- 2.0
- See Also:
-
Field Summary
Fields inherited from class EventObject
source -
Constructor Summary
ConstructorsConstructorDescriptionPostAddToViewEvent(UIComponent component) Instantiate a newPostAddToViewEventthat indicates the argumentcomponentwas just added to the view.PostAddToViewEvent(FacesContext facesContext, UIComponent component) Instantiate a newPostAddToViewEventthat indicates the argumentcomponentwas just added to the view. -
Method Summary
Methods inherited from class ComponentSystemEvent
getComponent, processListenerModifier and TypeMethodDescriptionthe sourceUIComponentthat sent this event.voidprocessListener(FacesListener listener) Broadcast this event instance to the specifiedFacesListenerby calling the superclass'sprocessListener()implementation.Methods inherited from class SystemEvent
getFacesContextMethods inherited from class EventObject
getSource, toString
-
Constructor Details
-
PostAddToViewEvent
Instantiate a new
PostAddToViewEventthat indicates the argumentcomponentwas just added to the view.- Parameters:
component- theUIComponentthat has just been added to the view.- Throws:
IllegalArgumentException- if the argument isnull.
-
PostAddToViewEvent
Instantiate a new
PostAddToViewEventthat indicates the argumentcomponentwas just added to the view.- Parameters:
facesContext- the Faces context.component- theUIComponentthat has just been added to the view.- Throws:
IllegalArgumentException- if the argument isnull.
-
-
Method Details
-
isAppropriateListener
Returns
trueif and only if the argumentlisteneris an instance ofSystemEventListener.- Overrides:
isAppropriateListenerin classComponentSystemEvent- Parameters:
listener- the faces listener.- Returns:
- true if it is an appropriate listener, false otherwise.
-