Search in sources :

Example 16 with Product

use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.

the class ExternalContextImpl method encodeNamespace.

/**
 * @see  ExternalContext#encodeNamespace(String)
 */
@Override
public String encodeNamespace(String name) {
    final Product RICHFACES = ProductFactory.getProductInstance(this, Product.Name.RICHFACES);
    final boolean RICHFACES_DETECTED = RICHFACES.isDetected();
    if (name == null) {
        return portletResponse.getNamespace();
    } else if (RICHFACES_DETECTED && (name.equals(ORG_RICHFACES_EXTENSION))) {
        // http://issues.liferay.com/browse/FACES-1416
        return name;
    } else {
        return portletResponse.getNamespace() + name;
    }
}
Also used : Product(com.liferay.faces.util.product.Product)

Example 17 with Product

use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.

the class ContextMapFactoryImpl method getUploadedFileMap.

@Override
public Map<String, List<UploadedFile>> getUploadedFileMap(PortletRequest portletRequest) {
    Map<String, List<UploadedFile>> bridgeUploadedFileMap = Collections.emptyMap();
    MultiPartFormData multiPartFormData = (MultiPartFormData) portletRequest.getAttribute(MULTIPART_FORM_DATA_FQCN);
    if (multiPartFormData != null) {
        Map<String, List<com.liferay.faces.util.model.UploadedFile>> uploadedFileMap = multiPartFormData.getUploadedFileMap();
        if (uploadedFileMap != null) {
            PortletSession portletSession = portletRequest.getPortletSession(true);
            PortletContext portletContext = portletSession.getPortletContext();
            Map<String, Object> applicationScopeMap = getApplicationScopeMap(portletContext, true);
            ExternalContext externalContext = new ExternalContextProductImpl(applicationScopeMap);
            ProductFactory productFactory = (ProductFactory) FactoryExtensionFinder.getFactory(externalContext, ProductFactory.class);
            Product PRIMEFACES = productFactory.getProductInfo(Product.Name.PRIMEFACES);
            boolean primeFacesDetected = PRIMEFACES.isDetected();
            int primeFacesMajorVersion = PRIMEFACES.getMajorVersion();
            bridgeUploadedFileMap = new HashMap<String, List<UploadedFile>>(uploadedFileMap.size());
            Set<Map.Entry<String, List<com.liferay.faces.util.model.UploadedFile>>> entrySet = uploadedFileMap.entrySet();
            for (Map.Entry<String, List<com.liferay.faces.util.model.UploadedFile>> mapEntry : entrySet) {
                List<com.liferay.faces.util.model.UploadedFile> uploadedFileList = mapEntry.getValue();
                if (uploadedFileList != null) {
                    List<UploadedFile> bridgeUploadedFileList = new ArrayList<UploadedFile>(uploadedFileList.size());
                    for (com.liferay.faces.util.model.UploadedFile uploadedFile : uploadedFileList) {
                        bridgeUploadedFileList.add(new UploadedFileBridgeImpl(uploadedFile, primeFacesDetected, primeFacesMajorVersion));
                    }
                    bridgeUploadedFileMap.put(mapEntry.getKey(), bridgeUploadedFileList);
                }
            }
        }
    }
    return bridgeUploadedFileMap;
}
Also used : ProductFactory(com.liferay.faces.util.product.ProductFactory) ArrayList(java.util.ArrayList) Product(com.liferay.faces.util.product.Product) UploadedFileBridgeImpl(com.liferay.faces.bridge.model.internal.UploadedFileBridgeImpl) ExternalContext(javax.faces.context.ExternalContext) ArrayList(java.util.ArrayList) List(java.util.List) MultiPartFormData(com.liferay.faces.util.context.map.MultiPartFormData) UploadedFile(com.liferay.faces.bridge.model.UploadedFile) PortletSession(javax.portlet.PortletSession) PortletContext(javax.portlet.PortletContext) HashMap(java.util.HashMap) Map(java.util.Map) FacesRequestParameterMap(com.liferay.faces.util.context.map.FacesRequestParameterMap)

Example 18 with Product

use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.

the class ContextMapFactoryImpl method getFacesRequestParameterMap.

protected FacesRequestParameterMap getFacesRequestParameterMap(PortletRequest portletRequest, String responseNamespace, PortletConfig portletConfig, BridgeRequestScope bridgeRequestScope, String defaultRenderKitId, String facesViewQueryString) {
    FacesRequestParameterMap facesRequestParameterMap = null;
    Map<String, String> facesViewParameterMap = getFacesViewParameterMap(facesViewQueryString);
    PortalContext portalContext = portletRequest.getPortalContext();
    boolean strictParameterNamespacingSupported = FacesRuntimeUtil.isStrictParameterNamespacingSupported(portalContext);
    PortletContext portletContext = portletConfig.getPortletContext();
    boolean namespaceViewState = strictParameterNamespacingSupported && FacesRuntimeUtil.isNamespaceViewState(strictParameterNamespacingSupported, portletContext);
    if (portletRequest instanceof ClientDataRequest) {
        ClientDataRequest clientDataRequest = (ClientDataRequest) portletRequest;
        String contentType = clientDataRequest.getContentType();
        // Note: af:inputFile (ADF Faces) ace:fileEntry (ICEfaces) rely on their own mechanisms for handling file
        // uploads.
        ProductFactory productFactory = (ProductFactory) BridgeFactoryFinder.getFactory(portletContext, ProductFactory.class);
        Product ADF_FACES_RICH_CLIENT = productFactory.getProductInfo(Product.Name.ADF_FACES);
        Product ICEFACES = productFactory.getProductInfo(Product.Name.ICEFACES);
        if (!ADF_FACES_RICH_CLIENT.isDetected() && !ICEFACES.isDetected() && (contentType != null) && contentType.toLowerCase().startsWith("multipart/")) {
            MultiPartFormData multiPartFormData = (MultiPartFormData) portletRequest.getAttribute(MULTIPART_FORM_DATA_FQCN);
            if (multiPartFormData == null) {
                facesRequestParameterMap = new FacesRequestParameterMapImpl(responseNamespace, bridgeRequestScope, facesViewParameterMap, defaultRenderKitId, getSeparatorChar(), strictParameterNamespacingSupported, namespaceViewState);
                MultiPartFormDataProcessor multiPartFormDataProcessor = new MultiPartFormDataProcessorImpl();
                Map<String, List<com.liferay.faces.util.model.UploadedFile>> uploadedFileMap = multiPartFormDataProcessor.process(clientDataRequest, portletConfig, facesRequestParameterMap);
                multiPartFormData = new MultiPartFormDataImpl(facesRequestParameterMap, uploadedFileMap);
                // Save the multipart/form-data in a request attribute so that it can be referenced later-on in the
                // JSF lifecycle by file upload component renderers.
                portletRequest.setAttribute(MULTIPART_FORM_DATA_FQCN, multiPartFormData);
            } else {
                facesRequestParameterMap = multiPartFormData.getFacesRequestParameterMap();
            }
        }
    }
    if (facesRequestParameterMap == null) {
        Map<String, String[]> parameterMap = portletRequest.getParameterMap();
        facesRequestParameterMap = new FacesRequestParameterMapImpl(parameterMap, responseNamespace, bridgeRequestScope, facesViewParameterMap, defaultRenderKitId, getSeparatorChar(), strictParameterNamespacingSupported, namespaceViewState);
    }
    return facesRequestParameterMap;
}
Also used : FacesRequestParameterMap(com.liferay.faces.util.context.map.FacesRequestParameterMap) ClientDataRequest(javax.portlet.ClientDataRequest) ProductFactory(com.liferay.faces.util.product.ProductFactory) Product(com.liferay.faces.util.product.Product) PortalContext(javax.portlet.PortalContext) PortletContext(javax.portlet.PortletContext) MultiPartFormData(com.liferay.faces.util.context.map.MultiPartFormData) ArrayList(java.util.ArrayList) List(java.util.List)

Example 19 with Product

use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.

the class PreDestroyInvokerFactoryImpl method getPreDestroyInvoker.

@Override
public PreDestroyInvoker getPreDestroyInvoker(PortletContext portletContext) {
    ProductFactory productFactory = (ProductFactory) BridgeFactoryFinder.getFactory(portletContext, ProductFactory.class);
    final Product MOJARRA = productFactory.getProductInfo(Product.Name.MOJARRA);
    if (MOJARRA.isDetected()) {
        return new PreDestroyInvokerMojarraImpl(portletContext);
    } else {
        return new PreDestroyInvokerImpl();
    }
}
Also used : ProductFactory(com.liferay.faces.util.product.ProductFactory) Product(com.liferay.faces.util.product.Product)

Example 20 with Product

use of com.liferay.faces.util.product.Product in project liferay-faces-bridge-impl by liferay.

the class ExternalContextCompat_2_0_Impl method isICEfacesLegacyMode.

protected boolean isICEfacesLegacyMode(ClientDataRequest clientDataRequest) {
    if (iceFacesLegacyMode == null) {
        boolean iceFacesLegacyMode = false;
        String requestContentType = clientDataRequest.getContentType();
        if ((requestContentType != null) && requestContentType.toLowerCase().startsWith("multipart/")) {
            final Product ICEFACES = ProductFactory.getProductInstance(this, Product.Name.ICEFACES);
            if (ICEFACES.isDetected() && ((ICEFACES.getMajorVersion() == 2) || ((ICEFACES.getMajorVersion() == 3) && (ICEFACES.getMinorVersion() == 0)))) {
                iceFacesLegacyMode = true;
            }
        }
        this.iceFacesLegacyMode = iceFacesLegacyMode;
    }
    return iceFacesLegacyMode;
}
Also used : Product(com.liferay.faces.util.product.Product)

Aggregations

Product (com.liferay.faces.util.product.Product)29 ExternalContext (javax.faces.context.ExternalContext)19 ProductFactory (com.liferay.faces.util.product.ProductFactory)12 FacesContext (javax.faces.context.FacesContext)7 PortletContext (javax.portlet.PortletContext)5 List (java.util.List)4 MultiPartFormData (com.liferay.faces.util.context.map.MultiPartFormData)3 ArrayList (java.util.ArrayList)3 ResponseWriter (javax.faces.context.ResponseWriter)3 PortletRequest (javax.portlet.PortletRequest)3 ConfiguredServletMapping (com.liferay.faces.util.config.ConfiguredServletMapping)2 FacesRequestParameterMap (com.liferay.faces.util.context.map.FacesRequestParameterMap)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 UIComponent (javax.faces.component.UIComponent)2 UIViewRoot (javax.faces.component.UIViewRoot)2 PortalContext (javax.portlet.PortalContext)2 PortletResponse (javax.portlet.PortletResponse)2 PortletSession (javax.portlet.PortletSession)2 BridgePortalContext (com.liferay.faces.bridge.context.BridgePortalContext)1