public void handleComponentEvent(final ComponentEventRequestParameters parameters, final ComponentRequestHandler handler) throws IOException { String componentId = parameters.getNestedComponentId().equals("") ? parameters.getContainingPageName() : parameters.getContainingPageName() + ":" + parameters.getNestedComponentId(); tracker.perform(String.format("Handling %s '%s' component event request for %s.", request.isXHR() ? "Ajax" : "traditional", parameters.getEventType(), componentId), new IOOperation<Void>() { public Void perform() throws IOException { handler.handleComponentEvent(parameters); return null; } }); }
String containingPageName = parameters.getContainingPageName(); String eventType = parameters.getEventType();
@Override public void handleComponentEvent(ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { Page containerPage = cache.get(parameters.getContainingPageName()); try { containerPage.getComponentElementByNestedId(parameters.getNestedComponentId()); handler.handleComponentEvent(parameters); } catch (UnknownValueException ex) { request.setAttribute(InternalConstants.REFERENCED_COMPONENT_NOT_FOUND, true); } }
public Link transformComponentEventLink(Link defaultLink, ComponentEventRequestParameters parameters) { Link link = defaultLink.copyWithBasePath("/event"); for (String name : defaultLink.getParameterNames()) { link.removeParameter(name); } Locale locale = persistentLocale.get(); if (locale != null) { link.addParameter("x:locale", locale.toString()); } link.addParameter("x:type", parameters.getEventType()); addEventContext(link, "x:ec", parameters.getEventContext()); addEventContext(link, "x:pac", parameters.getPageActivationContext()); link.addParameter("x:page", parameters.getActivePageName()); link.addParameter("x:id", parameters.getNestedComponentId()); if (!parameters.getActivePageName().equals(parameters.getContainingPageName())) link.addParameter("x:container", parameters.getContainingPageName()); return link; }
Page containerPage = cache.get(parameters.getContainingPageName());
return; Page containerPage = cache.get(parameters.getContainingPageName());