Class PostAddToViewEvent

All Implemented Interfaces:
Serializable

public class PostAddToViewEvent extends ComponentSystemEvent

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(), where comp is a UIComponent.

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:
  • Constructor Details

    • PostAddToViewEvent

      public PostAddToViewEvent(UIComponent component)

      Instantiate a new PostAddToViewEvent that indicates the argument component was just added to the view.

      Parameters:
      component - the UIComponent that has just been added to the view.
      Throws:
      IllegalArgumentException - if the argument is null.
    • PostAddToViewEvent

      public PostAddToViewEvent(FacesContext facesContext, UIComponent component)

      Instantiate a new PostAddToViewEvent that indicates the argument component was just added to the view.

      Parameters:
      facesContext - the Faces context.
      component - the UIComponent that has just been added to the view.
      Throws:
      IllegalArgumentException - if the argument is null.
  • Method Details