[jboss-cvs] jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit ...

Shane Bryzak sbryzak at redhat.com
Tue Jul 3 22:35:39 EDT 2007


  User: sbryzak2
  Date: 07/07/03 22:35:39

  Added:       ui/src/main/java/org/jboss/seam/ui/renderkit 
                        RemoteRendererBase.java
  Log:
  added s:remote tag
  
  Revision  Changes    Path
  1.1      date: 2007/07/04 02:35:39;  author: sbryzak2;  state: Exp;jboss-seam/ui/src/main/java/org/jboss/seam/ui/renderkit/RemoteRendererBase.java
  
  Index: RemoteRendererBase.java
  ===================================================================
  package org.jboss.seam.ui.renderkit;
  
  import java.io.IOException;
  import java.util.Map;
  
  import javax.faces.component.UIComponent;
  import javax.faces.context.FacesContext;
  import javax.faces.context.ResponseWriter;
  
  import org.jboss.seam.ui.component.UIRemote;
  import org.jboss.seam.ui.util.cdk.RendererBase;
  
  /**
   * Renderer for rendering the required <script> tags for Seam Remoting
   * 
   * @author Shane Bryzak
   */
  public class RemoteRendererBase extends RendererBase
  {
     @Override
     protected Class getComponentClass()
     {
        return UIRemote.class;
     }
  
     @Override
     protected void doEncodeBegin(ResponseWriter writer, FacesContext context, UIComponent component) 
        throws IOException
     {
        UIRemote remote = (UIRemote) component;
        
        writeScript(context, remote);
     }
     
     @Override
     protected void doEncodeEnd(ResponseWriter writer, FacesContext context, UIComponent component) 
        throws IOException
     {
        writer.flush();
     }
     
     public void writeScript(FacesContext context, UIRemote remote) 
        throws IOException
     {
        ResponseWriter response = context.getResponseWriter();
        
        Map request = context.getExternalContext().getRequestMap();
        if (request.get("REMOTE_SCRIPT") == null)
        {
           response.startElement("script", null);
           response.writeAttribute("type", "text/javascript", null);
           response.writeAttribute("src", context.getExternalContext().getRequestContextPath()
                    + "/seam/resource/remoting/resource/remote.js", null);
           response.endElement("script");
        }
  
        request.put("REMOTE_SCRIPT", null);
  
        response.startElement("script", null);
        response.writeAttribute("type", "text/javascript", null);
        response.writeAttribute("src", context.getExternalContext().getRequestContextPath()
                 + "/seam/resource/remoting/interface.js?" + remote.getInclude(), null);
        response.endElement("script");
     }
  }
  
  
  



More information about the jboss-cvs-commits mailing list