[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