/* * Copyright 2011-2012 Blazebit */ package com.blazebit.blazefaces.context; import java.util.Collection; import javax.faces.context.FacesContext; import javax.faces.context.PartialResponseWriter; import javax.faces.context.PartialViewContext; import javax.faces.context.PartialViewContextWrapper; import com.blazebit.blazefaces.util.FeatureDetectionUtils; public class BlazePartialViewContext extends PartialViewContextWrapper { private PartialViewContext wrapped; private PartialResponseWriter writer = null; public BlazePartialViewContext(PartialViewContext wrapped) { this.wrapped = wrapped; if(isAjaxRequest()) { new DefaultRequestContext(); FeatureDetectionUtils.retrieveFeatures(FacesContext.getCurrentInstance()); } } @Override public PartialViewContext getWrapped() { return this.wrapped; } @Override public void setPartialRequest(boolean value) { getWrapped().setPartialRequest(value); } @Override public PartialResponseWriter getPartialResponseWriter() { if (writer == null) { PartialResponseWriter parentWriter = getWrapped().getPartialResponseWriter(); writer = new BlazePartialResponseWriter(parentWriter); } return writer; } @Override public boolean isAjaxRequest() { return getWrapped().isAjaxRequest() || FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().containsKey("javax.faces.partial.ajax"); } @Override public boolean isPartialRequest() { return getWrapped().isPartialRequest() || FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().containsKey("javax.faces.partial.execute"); } }