1 5 package org.exoplatform.portal.faces.renderer.html.portal; 6 7 import java.io.IOException ; 8 import java.util.ResourceBundle ; 9 import javax.faces.component.UIComponent; 10 import javax.faces.context.FacesContext; 11 import javax.faces.context.ResponseWriter; 12 import javax.servlet.http.HttpServletRequest ; 13 import org.exoplatform.container.SessionContainer; 14 import org.exoplatform.faces.application.ExoFacesMessage; 15 import org.exoplatform.portal.faces.component.UIPortal; 16 import org.exoplatform.portal.faces.renderer.BaseRenderer; 17 import org.exoplatform.portal.html.PortalProviderRenderer; 18 import org.exoplatform.container.PortalContainer; 19 27 public class PortalRenderer extends BaseRenderer { 28 private PortalProviderRenderer portalProvider_ ; 29 30 31 public void encodeChildren(FacesContext context, UIComponent uiComponent) throws IOException { 32 UIPortal uiPortal = (UIPortal) uiComponent ; 33 PortalProviderRenderer portalProvider = getProvider() ; 34 ResourceBundle res = getApplicationResourceBundle(context.getExternalContext()) ; 35 HttpServletRequest request = (HttpServletRequest ) context.getExternalContext().getRequest(); 36 ResponseWriter w = context.getResponseWriter(); 37 w.write("\n<!DOCTYPE html\n"); 38 w.write(" PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n"); 39 w.write(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n"); 40 w.write("<html xmlns=\"http://www.w3.org/1999/xhtml\"> \n"); 41 w. write("<head>\n"); 42 portalProvider.renderTitle(w, res) ; 43 w. write("<base HREF='http://"); w.write(request.getServerName()); w.write(":"); 44 w.write(Integer.toString(request.getServerPort())); w.write("'/>") ; 45 portalProvider.renderMeta(w, res) ; 46 w. write("<link rel='stylesheet' type='text/css' HREF='") ; 47 w.write(request.getContextPath()) ; 48 w.write("/default-skin.css' />\n"); 49 w. write(uiPortal.getUserCss()); 50 portalProvider.renderLink(w, res) ; 51 portalProvider.renderScript(w, res) ; 52 w. write("</head>\n"); 53 if(uiPortal.hasMessage()) { 54 w.write("<body onload=\"javascript:alert('"); w.write(getMessage(uiPortal, res)); w.write("')\">\n") ; 55 } else { 56 w.write("<body>\n") ; 57 } 58 renderChildren(context, uiPortal) ; 59 w. write("</body>\n") ; 60 w.write("</html>\n") ; 61 uiPortal.setQueueEvent(false) ; 62 } 63 64 private String getMessage(UIPortal uiPortal, ResourceBundle res) { 65 StringBuffer b = new StringBuffer () ; 66 java.util.List messages = uiPortal.getMessages() ; 67 for(int i = 0; i < messages.size(); i++) { 68 ExoFacesMessage m = (ExoFacesMessage) messages.get(i) ; 69 b.append(m.getSummary(res)).append("\\n") ; 70 } 71 uiPortal.clearMessages() ; 72 return b.toString() ; 73 } 74 75 private PortalProviderRenderer getProvider() { 76 if(portalProvider_ == null) { 77 portalProvider_ = 78 (PortalProviderRenderer)PortalContainer.getComponent(PortalProviderRenderer.class) ; 79 } 80 return portalProvider_ ; 81 } 82 } | Popular Tags |