Package org.jboss.portletbridge.richfaces

Source Code of org.jboss.portletbridge.richfaces.PortalResourceBuilder

/**
*
*/
package org.jboss.portletbridge.richfaces;

import java.net.MalformedURLException;
import java.util.Map;
import java.util.Map.Entry;

import javax.faces.FacesException;
import javax.faces.context.FacesContext;
import javax.portlet.faces.BridgeUtil;

import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.resource.InternetResource;
import org.ajax4jsf.resource.ResourceBuilderImpl;
import org.jboss.portletbridge.application.PortletStateHolder;
import org.jboss.portletbridge.context.PortalActionURL;

/**
* @author asmirnov
*
*/
public class PortalResourceBuilder extends ResourceBuilderImpl {
 
  @Override
  public String getUri(InternetResource resource, FacesContext context,
      Object storeData) {
    String uri = super.getUri(resource, context, storeData);
    if(isPortletRequest(context) && resource.requireFacesContext()){
      try {
        PortalActionURL portalUrl = new PortalActionURL(uri);
        AjaxContext ajaxContext = AjaxContext.getCurrentInstance(context);
        Map<String, Object> ajaxParameters = ajaxContext.getCommonAjaxParameters();
        if(null != ajaxParameters && ajaxParameters.size()>0){
          for (Entry<String,Object> entry : ajaxParameters.entrySet()) {
            portalUrl.addParameter(entry.getKey(), String.valueOf(entry.getValue()));
          }
          uri = portalUrl.toString();
        }
      } catch (MalformedURLException e) {
        throw new FacesException("Bad resource URL ",e);
      }
    }
    return uri;
  }
 
  public static boolean isPortletRequest(FacesContext context) {
    return BridgeUtil.isPortletRequest()
        || context.getExternalContext().getRequestParameterMap()
            .containsKey(PortletStateHolder.STATE_ID_PARAMETER);
  }

}
TOP

Related Classes of org.jboss.portletbridge.richfaces.PortalResourceBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.