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

Norman Richards norman.richards at jboss.com
Mon Jan 15 14:36:41 EST 2007


  User: nrichards
  Date: 07/01/15 14:36:41

  Added:       src/pdf/org/jboss/seam/pdf     DocumentStore.java
                        DocumentStorePhaseListener.java
  Removed:     src/pdf/org/jboss/seam/pdf     PDFPhaseListener.java
                        PDFStore.java
  Log:
  basic support for RTF
  
  Revision  Changes    Path
  1.1      date: 2007/01/15 19:36:41;  author: nrichards;  state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/DocumentStore.java
  
  Index: DocumentStore.java
  ===================================================================
  package org.jboss.seam.pdf;
  
  import java.util.*;
  
  import org.jboss.seam.*;
  import org.jboss.seam.annotations.*;
  
  @Name("documentStore")
  @Scope(ScopeType.SESSION)
  public class DocumentStore {    
      Map<String,DocumentData> dataStore = new HashMap<String,DocumentData>();   
  
      long nextId = 1;
      
      public String newId() {
          return String.valueOf(nextId++);
      }
  
      public void saveData(String id, String type, byte[] data) {
          dataStore.put(id, new DocumentData(type,data));
      }
  
      public byte[] dataForId(String id) {
          return dataStore.get(id).getData();
      }
      
      public String typeForId(String id) {
          return dataStore.get(id).getMimeType();
      }
  
      public static DocumentStore instance()
      {
          return (DocumentStore) Component.getInstance(DocumentStore.class, true);
      }
      
      static class DocumentData {
          byte[] data;
          String mimeType;
          
          public DocumentData(String mimeType,byte[] data) {
              super();
              this.data = data;
              this.mimeType = mimeType;
          }
          public byte[] getData() {
              return data;
          }
          public String getMimeType() {
              return mimeType;
          }
          
          
      }
  }
  
  
  
  1.1      date: 2007/01/15 19:36:41;  author: nrichards;  state: Exp;jboss-seam/src/pdf/org/jboss/seam/pdf/DocumentStorePhaseListener.java
  
  Index: DocumentStorePhaseListener.java
  ===================================================================
  package org.jboss.seam.pdf;
  
  import java.io.IOException;
  
  import javax.faces.context.FacesContext;
  import javax.faces.event.PhaseEvent;
  import javax.faces.event.PhaseId;
  import javax.faces.event.PhaseListener;
  import javax.servlet.http.HttpServletResponse;
  
  import org.jboss.seam.util.Parameters;
  
  
  public class DocumentStorePhaseListener 
      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();
          
          String id = (String)
          Parameters.convertMultiValueRequestParameter(Parameters.getRequestParameters(),
                                                       "docId",
                                                       String.class);
          
          if (rootId.startsWith("/seam-doc")) {            
              sendContent(phaseEvent.getFacesContext(), id);
          }
      }
  
      public void sendContent(FacesContext context, String contentId) {
          try {
              DocumentStore store = DocumentStore.instance();
              byte[] data = store.dataForId(contentId);
  
              HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
              response.setContentType(store.typeForId(contentId));
              if (data != null) {
                  response.getOutputStream().write(data);
              }
              context.responseComplete();
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list