[jboss-cvs] jboss-seam/src/pdf/org/jboss/seam/pdf ...

Norman Richards norman.richards at jboss.com
Sun Dec 24 11:21:33 EST 2006


  User: nrichards
  Date: 06/12/24 11:21:33

  Added:       src/pdf/org/jboss/seam/pdf   PDFPhaseListener.java
                        PDFStore.java
  Log:
  check in itext preview
  
  Revision  Changes    Path
  1.1      date: 2006/12/24 16:21:33;  author: nrichards;  state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/PDFPhaseListener.java
  
  Index: PDFPhaseListener.java
  ===================================================================
  package org.jboss.seam.pdf;
  
  import org.jboss.seam.util.Parameters;
  
  import javax.faces.event.*;
  import javax.faces.context.*;
  import javax.faces.component.*;
  import javax.servlet.http.*;
  
  import java.io.*;
  import java.util.*;
  
  import com.lowagie.text.*;
  import com.lowagie.text.pdf.*;
  
  //import org.jboss.seam.ui.facelet.*;
  
  public class PDFPhaseListener 
      implements PhaseListener 
  {
      public PhaseId getPhaseId() {
          return PhaseId.RENDER_RESPONSE;
      }
  
  
      public void afterPhase(PhaseEvent phaseEvent) {
          String rootId = phaseEvent.getFacesContext().getViewRoot().getViewId();
      }
  
  
      public void beforePhase(PhaseEvent phaseEvent) {
          String rootId = phaseEvent.getFacesContext().getViewRoot().getViewId();
          
          if (rootId.startsWith("/seam-pdf")) {
              String id = (String)
                  Parameters.convertMultiValueRequestParameter(Parameters.getRequestParameters(),
                                                               "pdfId",
                                                               String.class);
              sendPDF(phaseEvent.getFacesContext(), id);
          }
      }
  
      public void sendPDF(FacesContext context, String id) {
          try {
              PDFStore store = PDFStore.instance();
              byte[] data = store.getData(id);
  
              HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
              response.setContentType("application/pdf");
              if (data != null) {
                  response.getOutputStream().write(data);
              }
              context.responseComplete();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  
  //     public void sendPDF(PhaseEvent phaseEvent) {
  //         try {
  //             FacesContext context = phaseEvent.getFacesContext();
  //             UIViewRoot viewRoot = context.getViewRoot();
  
  //             SeamFaceletViewHandler handler = (SeamFaceletViewHandler) 
  //                 context.getApplication().getViewHandler();
  //             handler.myBuildView(context, viewRoot);
              
  //             ExternalContext externalContext = context.getExternalContext();            
  //             HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
  //             response.setContentType("application/pdf");
               
  //             Document document = new Document();
  
  //             PdfWriter.getInstance(document, response.getOutputStream());
  
  //             document.open();
  //             document.add(new Paragraph("Hello World " + new Date()));
  //             document.close();
  
  //             context.responseComplete();
  //         } catch (DocumentException e) {
  //             e.printStackTrace();
  //         } catch (IOException e) {
  //             e.printStackTrace();
  //         }
  //     }
  
  }
  
  
  
  1.1      date: 2006/12/24 16:21:33;  author: nrichards;  state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/PDFStore.java
  
  Index: PDFStore.java
  ===================================================================
  package org.jboss.seam.pdf;
  
  import java.util.*;
  
  import org.jboss.seam.*;
  import org.jboss.seam.annotations.*;
  
  @Name("pdfstore")
  @Scope(ScopeType.SESSION)
  public class PDFStore {
      Map<String,byte[]> dataStore = new HashMap<String,byte[]>();
  
      long nextId = 1;
      
      public String newId() {
          return String.valueOf(nextId++);
      }
  
      public void saveData(String id, byte[] data) {
          dataStore.put(id,data);
      }
  
      public byte[] getData(String id) {
          return dataStore.get(id);
      }
  
      public static PDFStore instance()
      {
          return (PDFStore) Component.getInstance(PDFStore.class, true);
      }
  }
  
  
  



More information about the jboss-cvs-commits mailing list