/** * Tracks additions (resp. removals) of {@link AjaxOutput} to (resp. from) a component tree on {@link PostAddToViewEvent} * (resp. {@link PreRemoveFromViewEvent}) */ @Override public void processEvent(SystemEvent event) throws AbortProcessingException { if (event instanceof PostAddToViewEvent) { PostAddToViewEvent addToViewEvent = (PostAddToViewEvent) event; componentAdded(addToViewEvent.getComponent()); } else if (event instanceof PreRemoveFromViewEvent) { PreRemoveFromViewEvent removeFromViewEvent = (PreRemoveFromViewEvent) event; componentRemoved(removeFromViewEvent.getComponent()); } else { throw new IllegalArgumentException(event.toString()); } }