package husacct.validate.task.imexporting;
import husacct.validate.domain.validation.internaltransferobjects.ViolationsPerSeverity;
import java.awt.Color;
import java.awt.GradientPaint;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.DefaultCategoryDataset;
public class StatisticsImage {
public void createStatisticsImage(String path, List<ViolationsPerSeverity> list) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
JFreeChart chart = ChartFactory.createBarChart("Violations Chart", "severity", "violations", dataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = chart.getCategoryPlot();
BarRenderer renderer = (BarRenderer) plot.getRenderer();
NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
int index = 0;
for (ViolationsPerSeverity violationPerSeverity : list) {
final String severityKey = violationPerSeverity.getSeverity().getSeverityKey();
dataset.addValue(violationPerSeverity.getAmount(), severityKey, severityKey);
GradientPaint paint = new GradientPaint(0.0f, 0.0f, violationPerSeverity.getSeverity().getColor(), 0.0f, 0.0f, new Color(0, 0, 20));
renderer.setSeriesPaint(index, paint);
index++;
}
try {
ChartUtilities.saveChartAsPNG(new File(path), chart, 600, 200);
} catch (IOException e) {
e.printStackTrace();
}
}
}