KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > exoplatform > portal > faces > renderer > html > portal > PortalRenderer


1 /***************************************************************************
2  * Copyright 2001-2003 The eXo Platform SARL All rights reserved. *
3  * Please look at license.txt in info directory for more license detail. *
4  **************************************************************************/

5 package org.exoplatform.portal.faces.renderer.html.portal;
6
7 import java.io.IOException JavaDoc;
8 import java.util.ResourceBundle JavaDoc;
9 import javax.faces.component.UIComponent;
10 import javax.faces.context.FacesContext;
11 import javax.faces.context.ResponseWriter;
12 import javax.servlet.http.HttpServletRequest JavaDoc;
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 /**
20  * Date: Aug 11, 2003
21  * @author : Mestrallet Benjamin
22  * @email: benjmestrallet@users.sourceforge.net
23  * @author: Tuan Nguyen
24  * @email: tuan08@users.sourceforge.net
25  * @version: $Id: PortalRenderer.java,v 1.11 2004/10/08 18:03:13 benjmestrallet Exp $
26  */

27 public class PortalRenderer extends BaseRenderer {
28   private PortalProviderRenderer portalProvider_ ;
29   
30   
31   public void encodeChildren(FacesContext context, UIComponent uiComponent) throws IOException JavaDoc {
32     UIPortal uiPortal = (UIPortal) uiComponent ;
33     PortalProviderRenderer portalProvider = getProvider() ;
34     ResourceBundle JavaDoc res = getApplicationResourceBundle(context.getExternalContext()) ;
35     HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) 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 JavaDoc getMessage(UIPortal uiPortal, ResourceBundle JavaDoc res) {
65     StringBuffer JavaDoc b = new StringBuffer JavaDoc() ;
66     java.util.List JavaDoc 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