diff options
Diffstat (limited to 'java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java')
-rw-r--r-- | java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java | 44 |
1 files changed, 27 insertions, 17 deletions
diff --git a/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java b/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java index 5d4a9b6b7e..341f01ccd1 100644 --- a/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java +++ b/java/perftests/visualisation-jfc/src/main/java/org/apache/qpid/disttest/charting/writer/ChartWriter.java @@ -26,10 +26,11 @@ import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; -import java.util.SortedSet; -import java.util.TreeSet; +import java.util.SortedMap; +import java.util.TreeMap; import org.apache.qpid.disttest.charting.ChartingException; +import org.apache.qpid.disttest.charting.definition.ChartingDefinition; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.slf4j.Logger; @@ -42,19 +43,19 @@ public class ChartWriter static final String SUMMARY_FILE_NAME = "chart-summary.html"; private File _chartDirectory = new File("."); - private SortedSet<File> _chartFiles = new TreeSet<File>(); + private SortedMap<File,ChartingDefinition> _chartFilesToChartDef = new TreeMap<File, ChartingDefinition>(); - public void writeChartToFileSystem(JFreeChart chart, String chartStemName) + public void writeChartToFileSystem(JFreeChart chart, ChartingDefinition chartDef) { OutputStream pngOutputStream = null; try { - File pngFile = new File(_chartDirectory, chartStemName + ".png"); + File pngFile = new File(_chartDirectory, chartDef.getChartStemName() + ".png"); pngOutputStream = new BufferedOutputStream(new FileOutputStream(pngFile)); ChartUtilities.writeChartAsPNG(pngOutputStream, chart, 600, 400, true, 0); pngOutputStream.close(); - _chartFiles.add(pngFile); + _chartFilesToChartDef.put(pngFile, chartDef); LOGGER.info("Written {} chart", pngFile); } @@ -78,20 +79,21 @@ public class ChartWriter } } - public void writeHtmlSummaryToFileSystem() + public void writeHtmlSummaryToFileSystem(String summaryPageTitle) { - if(_chartFiles.size() < 2) + if(_chartFilesToChartDef.size() < 2) { - LOGGER.info("Only " + _chartFiles.size() + " chart image(s) have been written so no HTML summary file will be produced"); + LOGGER.info("Only {} chart image(s) have been written so no HTML summary file will be produced", _chartFilesToChartDef.size()); return; } - String htmlHeader = + String htmlHeader = String.format( "<html>\n" + " <head>\n" + - " <title>Performance Charts</title>\n" + + " <title>%s</title>\n" + + " <style type='text/css'>figure { float: left; display: table; width: 87px;}</style>\n" + " </head>\n" + - " <body>\n"; + " <body>\n", summaryPageTitle); String htmlFooter = " </body>\n" + @@ -101,22 +103,29 @@ public class ChartWriter try { File summaryFile = new File(_chartDirectory, SUMMARY_FILE_NAME); - LOGGER.debug("About to produce HTML summary file " + summaryFile.getAbsolutePath() + " from charts " + _chartFiles); + LOGGER.debug("About to produce HTML summary file " + summaryFile.getAbsolutePath() + " from charts " + _chartFilesToChartDef); writer = new BufferedWriter(new FileWriter(summaryFile)); writer.write(htmlHeader); writer.write(" <ul>\n"); - for (File chartFile : _chartFiles) + for (File chartFile : _chartFilesToChartDef.keySet()) { writer.write(" <li><a href='#"+ chartFile.getName() +"'>" + chartFile.getName() + "</a></li>\n"); } writer.write(" </ul>\n"); - for (File chartFile : _chartFiles) + for (File chartFile : _chartFilesToChartDef.keySet()) { - writer.write(" <a name='" + chartFile.getName() + "'/>\n"); - writer.write(" <img src='" + chartFile.getName() + "'/>\n"); + ChartingDefinition def = _chartFilesToChartDef.get(chartFile); + writer.write(" <figure>\n"); + writer.write(" <a name='" + chartFile.getName() + "'/>\n"); + writer.write(" <img src='" + chartFile.getName() + "'/>\n"); + if (def.getChartDescription() != null) + { + writer.write(" <figcaption>" + def.getChartDescription() + "</figcaption>\n"); + } + writer.write(" </figure>\n"); } writer.write(htmlFooter); writer.close(); @@ -144,5 +153,6 @@ public class ChartWriter public void setOutputDirectory(final File chartDirectory) { _chartDirectory = chartDirectory; + LOGGER.info("Set chart directory: {}", chartDirectory); } } |