/** * @param out * @return extension png or jpg for usage as file name extension. */ public String write(final OutputStream out) { final JFreeChart chart = getJFreeChart(); final int width = getWidth(); final int height = getHeight(); String extension = null; try { if (getImageType() == JFreeChartImageType.PNG) { extension = "png"; ChartUtilities.writeChartAsPNG(out, chart, width, height); } else { extension = "jpg"; ChartUtilities.writeChartAsJPEG(out, chart, width, height); } } catch (final IOException ex) { log.error("Exception encountered " + ex, ex); } return extension; }
private void jFreeChartExport() { try { final ExportJFreeChart exportJFreeChart = (ExportJFreeChart) groovyResult.getResult(); final StringBuilder sb = new StringBuilder(); sb.append("pf_chart_"); sb.append(DateHelper.getTimestampAsFilenameSuffix(new Date())); final Response response = getResponse(); final String extension = exportJFreeChart.write(response.getOutputStream()); sb.append('.').append(extension); final String filename = sb.toString(); final int width = exportJFreeChart.getWidth(); final int height = exportJFreeChart.getHeight(); final JFreeChartImage image = new JFreeChartImage("image", exportJFreeChart.getJFreeChart(), exportJFreeChart.getImageType(), width, height); image.add(AttributeModifier.replace("width", String.valueOf(width))); image.add(AttributeModifier.replace("height", String.valueOf(height))); imageResultContainer.removeAll(); imageResultContainer.add(image).setVisible(true); ((WebResponse) response).setAttachmentHeader(filename); ((WebResponse) response).setContentType(DownloadUtils.getContentType(filename)); log.info("Starting download for file. filename:" + filename + ", content-type:" + DownloadUtils.getContentType(filename)); response.getOutputStream().flush(); } catch (final Exception ex) { error(getLocalizedMessage("error", ex.getMessage())); log.error(ex.getMessage(), ex); } }