private File createFile(FacesContext fc, String type, UIData uiData) { OutputTypeHandler outputHandler = null; String path = CoreUtils.getRealPath(fc, "/export"); File exportDir = new File(path); if (!exportDir.exists()) exportDir.mkdirs(); String pathWithoutExt = path + "/export_" + new Date().getTime(); if (getOutputTypeHandler() != null) outputHandler = getOutputTypeHandler(); else if (DataExporter.EXCEL_TYPE.equals(getType())) { outputHandler = new ExcelOutputHandler(pathWithoutExt + ".xls", fc, uiData.getId()); } else if (DataExporter.CSV_TYPE.equals(getType())) { outputHandler = new CSVOutputHandler(pathWithoutExt + ".csv"); } else if (DataExporter.PDF_TYPE.equals(getType())) { outputHandler = new PDFOutputHandler(pathWithoutExt + ".pdf", uiData.getId()); } else { outputHandler = NoopOutputHandler; } renderToHandler(outputHandler, uiData, fc); setMimeType(outputHandler.getMimeType()); return outputHandler.getFile(); }
@Override public String getRender() { String render = super.getRender(); if ((render != null) && render.contains("@for")) { UIData uiData = getUIData(); if (uiData != null) { String uiDataId = uiData.getId(); render = render.replace("@for", uiDataId); } } return render; }
@Override public String getExecute() { String execute = super.getExecute(); if ((execute != null) && execute.contains("@for")) { UIData uiData = getUIData(); if (uiData != null) { String uiDataId = uiData.getId(); execute = execute.replace("@for", uiDataId); } } return execute; }