[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