1 23 24 package org.infoglue.deliver.util.charts; 25 26 import java.io.File ; 27 28 import org.apache.log4j.Logger; 29 import org.infoglue.cms.util.CmsPropertyHandler; 30 import org.infoglue.deliver.controllers.kernel.impl.simple.TemplateController; 31 import org.jfree.chart.ChartUtilities; 32 33 39 40 public class ChartHelper 41 { 42 private final static Logger logger = Logger.getLogger(ChartHelper.class.getName()); 43 44 private TemplateController templateController = null; 45 46 49 50 public ChartHelper(TemplateController templateController) 51 { 52 this.templateController = templateController; 53 } 54 55 58 59 public String renderGraph(String chartName, String dataAsXML, int width, int height) 60 { 61 String assetUrl = ""; 62 63 try 64 { 65 XMLDataDiagram demo = null; 66 67 if(chartName.equals("TimeSeriesDiagram")) 68 { 69 demo = new TimeSeriesDiagram(); 70 demo.setDiagramData(dataAsXML); 71 demo.renderChart(); 72 } 73 else 74 { 75 demo = new TimeSeriesDiagram(); 77 demo.setDiagramData(dataAsXML); 78 demo.renderChart(); 79 } 80 81 String uniqueId = chartName + width + height + dataAsXML.length(); 82 String fileName = uniqueId + ".png"; 83 84 int i = 0; 85 String filePath = CmsPropertyHandler.getProperty("digitalAssetPath." + i); 86 File file = null; 87 while(filePath != null) 88 { 89 file = new File (filePath + java.io.File.separator + fileName); 90 ChartUtilities.saveChartAsPNG(file, demo.getChart(), width, height); 91 i++; 92 filePath = CmsPropertyHandler.getProperty("digitalAssetPath." + i); 93 } 94 95 100 101 assetUrl = this.templateController.getDigitalAssetBaseUrl() + "/" + file.getName(); 102 } 103 catch(Exception e) 104 { 105 logger.warn("An error occurred when we tried to generate a graph:" + e.getMessage(), e); 106 } 107 108 return assetUrl; 109 } 110 111 } 112 | Popular Tags |