From 21ab39013c3098f599edc29f98a41468092a8e8c Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Mon, 14 Apr 2014 13:01:51 +0200 Subject: [PATCH] renamed analysis.toolbox/AlgorithmSearchProgressChartBuilder.java to analysis.toolbox.XYLineChartBuilder.java --- .../AlgorithmSearchProgressChartListener.java | 6 +-- ...rtBuilder.java => XYLineChartBuilder.java} | 39 +++++++++++++++++-- 2 files changed, 38 insertions(+), 7 deletions(-) rename jsprit-analysis/src/main/java/jsprit/analysis/toolbox/{AlgorithmSearchProgressChartBuilder.java => XYLineChartBuilder.java} (70%) diff --git a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartListener.java b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartListener.java index 63fff9ef..e6d16c3d 100644 --- a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartListener.java +++ b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartListener.java @@ -44,7 +44,7 @@ public class AlgorithmSearchProgressChartListener implements IterationEndsListen private String filename; - private AlgorithmSearchProgressChartBuilder chartBuilder; + private XYLineChartBuilder chartBuilder; /** * Constructs chart listener with target png-file (filename plus path). @@ -62,7 +62,7 @@ public class AlgorithmSearchProgressChartListener implements IterationEndsListen @Override public void informAlgorithmEnds(VehicleRoutingProblem problem, Collection solutions) { log.info("create chart " + filename); - AlgorithmSearchProgressChartBuilder.saveChartAsPNG(chartBuilder.build(), filename); + XYLineChartBuilder.saveChartAsPNG(chartBuilder.build(), filename); } @Override @@ -83,7 +83,7 @@ public class AlgorithmSearchProgressChartListener implements IterationEndsListen @Override public void informAlgorithmStarts(VehicleRoutingProblem problem,VehicleRoutingAlgorithm algorithm,Collection solutions) { - chartBuilder = AlgorithmSearchProgressChartBuilder.newInstance("search-progress", "iterations", "results"); + chartBuilder = XYLineChartBuilder.newInstance("search-progress", "iterations", "results"); } } diff --git a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartBuilder.java b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/XYLineChartBuilder.java similarity index 70% rename from jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartBuilder.java rename to jsprit-analysis/src/main/java/jsprit/analysis/toolbox/XYLineChartBuilder.java index 19e14fe3..18283114 100644 --- a/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/AlgorithmSearchProgressChartBuilder.java +++ b/jsprit-analysis/src/main/java/jsprit/analysis/toolbox/XYLineChartBuilder.java @@ -15,8 +15,19 @@ import org.jfree.data.Range; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; -public class AlgorithmSearchProgressChartBuilder { +/** + * + * @author schroeder + * + */ +public class XYLineChartBuilder { + /** + * Helper that just saves the chart as specified png-file. The width of the image is 1000 and height 600. + * + * @param chart + * @param pngFilename + */ public static void saveChartAsPNG(JFreeChart chart, String pngFilename){ try { ChartUtilities.saveChartAsPNG(new File(pngFilename), chart, 1000, 600); @@ -25,8 +36,17 @@ public class AlgorithmSearchProgressChartBuilder { } } - public static AlgorithmSearchProgressChartBuilder newInstance(String chartName, String xDomainName, String yDomainName){ - return new AlgorithmSearchProgressChartBuilder(chartName, xDomainName, yDomainName); + /** + * Returns a new instance of the builder. + * + * @param chartTitle appears on top of the XYLineChart + * @param xDomainName appears below the xAxis + * @param yDomainName appears beside the yAxis + * + * @return the builder + */ + public static XYLineChartBuilder newInstance(String chartTitle, String xDomainName, String yDomainName){ + return new XYLineChartBuilder(chartTitle, xDomainName, yDomainName); } private ConcurrentHashMap seriesMap = new ConcurrentHashMap(); @@ -37,12 +57,19 @@ public class AlgorithmSearchProgressChartBuilder { private final String chartName; - private AlgorithmSearchProgressChartBuilder(String chartName, String xDomainName, String yDomainName) { + private XYLineChartBuilder(String chartName, String xDomainName, String yDomainName) { this.xDomain=xDomainName; this.yDomain=yDomainName; this.chartName=chartName; } + /** + * Adds data to the according series (i.e. XYLine). + * + * @param seriesName + * @param xVal + * @param yVal + */ public void addData(String seriesName, double xVal, double yVal){ if(!seriesMap.containsKey(seriesName)){ seriesMap.put(seriesName, new XYSeries(seriesName,true,true)); @@ -50,6 +77,10 @@ public class AlgorithmSearchProgressChartBuilder { seriesMap.get(seriesName).add(xVal, yVal); } + /** + * Builds and returns JFreeChart. + * @return + */ public JFreeChart build(){ XYSeriesCollection collection = new XYSeriesCollection(); for(XYSeries s : seriesMap.values()){