this.partialRenderer = partialRenderer;
}
public void handle(ComponentEventRequestParameters parameters) throws IOException
{
Page activePage = cache.get(parameters.getActivePageName());
final Holder<Boolean> resultProcessorInvoked = Holder.create();
resultProcessorInvoked.put(false);
ComponentEventResultProcessor interceptor = new ComponentEventResultProcessor()
{
public void processResultValue(Object value) throws IOException
{
resultProcessorInvoked.put(true);
resultProcessor.processResultValue(value);
}
};
// If we end up doing a partial render, the page render queue service needs to know the
// page that will be rendered (for logging purposes, if nothing else).
queue.setRenderingPage(activePage);
if (pageActivator.activatePage(activePage.getRootElement().getComponentResources(), parameters
.getPageActivationContext(), interceptor))
return;
ContentType contentType = pageContentTypeAnalyzer.findContentType(activePage);
request.setAttribute(InternalConstants.CONTENT_TYPE_ATTRIBUTE_NAME, contentType);
Page containerPage = cache.get(parameters.getContainingPageName());
ComponentPageElement element = containerPage.getComponentElementByNestedId(parameters.getNestedComponentId());
// In many cases, the triggered element is a Form that needs to be able to
// pass its event handler return values to the correct result processor.
// This is certainly the case for forms.