public String getFileName() { if (fileName == null) { return getBaseName() + "." + getDocumentType().getExtension(); } else { return fileName; } }
@Override protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { new ContextualHttpServletRequest(request) { @Override public void process() throws ServletException, IOException { doWork(request, response); } }.run(); }
/** * Gets the document type of the data for the DocumentStore * * @return the document type (Excel workbook) */ public DocumentType getDocumentType() { return new DocumentData.DocumentType("xls", "application/vnd.ms-excel"); }
String baseName = Pages.getCurrentBaseName(); DocumentData documentData = new ByteArrayDocumentData(baseName, documentType, bytes); String dispositionValue = (String) valueBinding(context, "disposition", disposition); if (dispositionValue != null) documentData.setDisposition(dispositionValue); if (fileNameValue != null) documentData.setFilename(fileNameValue); DocumentStore store = DocumentStore.instance(); String id = store.newId(); String url = store.preferredUrlForContent(baseName, documentType.getExtension(), id); url = Manager.instance().encodeConversationId(url, viewId); store.saveData(id, documentData);
public static String addResourceToDataStore(FacesContext ctx, UIResource resource) { String baseName = Pages.getCurrentBaseName(); String viewId = Pages.getViewId(ctx); DocumentStore store = DocumentStore.instance(); String id = store.newId(); DocumentType type = new DocumentType("", resource.getContentType()); DocumentData documentData = new DownloadableDocumentData(baseName, type, resource.getData()); documentData.setFilename(resource.getFileName()); documentData.setDisposition(resource.getDisposition()); String url = store.preferredUrlForContent(resource.getFileName(), type.getExtension(), id); url = Manager.instance().encodeConversationId(url, viewId); store.saveData(id, documentData); return url; }
String baseName = Pages.getCurrentBaseName(); DocumentStore store = DocumentStore.instance(); DocumentType documentType = new DocumentData.DocumentType("pdf", "application/pdf"); DocumentData documentData = new ByteArrayDocumentData(baseName, documentType, buffer.toByteArray()); documentData.setFilename(getFilename()); String id = store.newId(); String url = store.preferredUrlForContent(baseName, documentType.getExtension(), id); url = Manager.instance().encodeConversationId(url, viewId); store.saveData(id, documentData); log.debug("Redirecting to #0 for PDF view", url); facesContext.getExternalContext().redirect(url);
/** * Puts document in store and redirects */ private void redirectExport() { String viewId = Pages.getViewId(FacesContext.getCurrentInstance()); String baseName = Pages.getCurrentBaseName(); DocumentData documentData = new ByteArrayDocumentData(baseName, excelWorkbook.getDocumentType(), excelWorkbook.getBytes()); String id = DocumentStore.instance().newId(); String url = DocumentStore.instance().preferredUrlForContent(baseName, excelWorkbook.getDocumentType().getExtension(), id); url = Manager.instance().encodeConversationId(url, viewId); DocumentStore.instance().saveData(id, documentData); try { FacesContext.getCurrentInstance().getExternalContext().redirect(url); } catch (IOException e) { throw new ExcelWorkbookException(Interpolator.instance().interpolate("Could not redirect to #0", url), e); } }
String contentId = (String) params.convertMultiValueRequestParameter(params.getRequestParameters(), "docId", String.class); DocumentStore store = DocumentStore.instance(); if (store.idIsValid(contentId)) DocumentData documentData = store.getDocumentData(contentId); response.setContentType(documentData.getDocumentType().getMimeType()); response.setHeader("Content-Disposition", documentData.getDisposition() + "; filename=\"" + documentData.getFileName() + "\""); documentData.writeDataToStream(response.getOutputStream()); String error = store.getErrorPage(); if (error != null)
public void sendContent(FacesContext context, String contentId) { try { DocumentData documentData = DocumentStore.instance().getDocumentData(contentId); if (documentData != null) { HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse(); response.setContentType(documentData.getDocumentType().getMimeType()); response.setHeader("Content-Disposition", documentData.getDisposition() + "; filename=\"" + documentData.getFileName() + "\""); documentData.writeDataToStream(response.getOutputStream()); context.responseComplete(); } } catch (IOException e) { log.warn(e); } }
public String preferredUrlForContent(String baseName, String extension, String contentId) { StringBuffer url = new StringBuffer(baseUrlForContent(baseName, extension)); if (url.toString().indexOf('?') >= 0) { url.append("&docId=").append(contentId); } else { url.append("?docId=").append(contentId); } return url.toString(); }
public void beforePhase(PhaseEvent phaseEvent) { String rootId = Pages.getViewId(phaseEvent.getFacesContext()); Parameters params = Parameters.instance(); String id = (String) params.convertMultiValueRequestParameter(params.getRequestParameters(), "docId", String.class); if (rootId.contains(DocumentStore.DOCSTORE_BASE_URL)) { sendContent(phaseEvent.getFacesContext(), id); } }
String baseName = Pages.getCurrentBaseName(); DocumentData documentData = new ByteArrayDocumentData(baseName, type, bytes); documentData.setFilename(getFilename()); Boolean dispositionValue = getDisposition(); if (dispositionValue != null) documentData.setDisposition(dispositionValue.toString()); DocumentStore store = DocumentStore.instance(); String id = store.newId(); String url = store.preferredUrlForContent(baseName, type.getExtension(), id); url = Manager.instance().encodeConversationId(url, viewId); store.saveData(id, documentData);
public DocumentType getDocumentType() { return new DocumentData.DocumentType("csv", "text/csv"); }