1,11 → 1,36 |
package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components; |
|
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
//import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
|
import jomm.utils.BytesUtils; |
import jomm.utils.MimeTypeGuesser; |
import org.apache.log4j.Category; |
import org.jfree.chart.ChartFactory; |
import org.jfree.chart.ChartFrame; |
import org.jfree.chart.JFreeChart; |
import org.jfree.chart.axis.NumberAxis; |
import org.jfree.chart.axis.ValueAxis; |
import org.jfree.chart.plot.CategoryPlot; |
import org.jfree.chart.plot.PiePlot; |
import org.jfree.chart.plot.PlotOrientation; |
import org.jfree.chart.plot.RingPlot; |
import org.jfree.data.category.DefaultCategoryDataset; |
import org.jfree.data.general.DefaultPieDataset; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.utils.Globals; |
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
import pt.estgp.estgweb.web.controllers.utils.FileUploaded; |
|
import javax.imageio.ImageIO; |
import java.awt.*; |
import java.awt.image.BufferedImage; |
import java.io.FileOutputStream; |
import java.io.IOException; |
|
/** |
* Created by jorgemachado on 31/10/17. |
*/ |
public class LearningResultsChartSem extends AutoImageWraperComponent |
public class LearningResultsChartSem extends ImageComponent |
{ |
String semesterCode; |
|
24,4 → 49,79 |
public void setSemesterCode(String semesterCode) { |
this.semesterCode = semesterCode; |
} |
|
public FileUploaded generateChart2tmp(UnitsLearningResultsTable results,CourseReportDocument courseReportDocument) throws IOException |
{ |
float aprovados1013 = results.getAprovados(); |
float aprovados1416 = results.getAprovados(); |
float aprovados1720 = results.getAprovados(); |
double aprovadosPercent1013 = results.getAprovados(); |
double aprovadosPercent1416 = results.getAprovados(); |
double aprovadosPercent1720 = results.getAprovados(); |
|
DefaultCategoryDataset data = new DefaultCategoryDataset(); |
for (int i = 0; i < 3; i++) |
{ |
UnitsLearningResult ola = results.years.get(i); |
|
aprovados1013 = ola.getAprovados1013(); |
aprovados1416 = ola.getAprovados1416(); |
aprovados1720 = ola.getAprovados1720(); |
aprovadosPercent1013 = ((int)(ola.getAprovados1013Percent()*100.0))/100.0; |
aprovadosPercent1416 = ((int)(ola.getAprovados1416Percent()*100.0))/100.0; |
aprovadosPercent1720 = ((int)(ola.getAprovados1720Percent()*100.0))/100.0; |
|
//if (aprovados1013> 0) |
data.setValue(new Double(aprovadosPercent1013), "Aprovados1013 " ,(i + 1) + "º Ano " ); |
//if (aprovados1416> 0) |
data.setValue(new Double(aprovadosPercent1416), "Aprovados1416 " ,(i + 1) + "º Ano " ); |
//if (aprovados1720> 0) |
data.setValue(new Double(aprovadosPercent1720), "Aprovados1720 " ,(i + 1) + "º Ano " ); |
} |
String tempName = BytesUtils.generateHexKey() + ".png"; |
|
//Grafico Barras |
JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.VERTICAL, true,true,false); |
|
chart.setBackgroundPaint(new Color(255, 231, 242)); |
|
CategoryPlot plot = chart.getCategoryPlot(); |
|
plot.setRangeGridlinePaint(Color.black); |
|
//plot.setDrawingSupplier(new ChartBuilderUtil.ChartDrawingSupplier()); |
/* |
plot.setSectionPaint(0, new Color(255, 0, 0)); |
plot.setSectionPaint(1, new Color(15, 218, 10)); |
plot.setSectionPaint(2, new Color(200, 200, 200)); |
plot.setBackgroundPaint(new Color(255, 255, 255)); |
plot.setOutlineVisible(false); |
|
plot.setLabelFont(new Font( |
"Helvetica", Font.PLAIN, 30)); |
*/ |
|
plot.getDomainAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 25)); |
|
plot.getRenderer().setSeriesPaint(0, new Color(255, 171, 28)); |
plot.getRenderer().setSeriesPaint(1, new Color(255, 253, 44)); |
plot.getRenderer().setSeriesPaint(2, new Color(0, 255, 0)); |
plot.setBackgroundPaint(new Color(249, 231, 236)); |
|
BufferedImage image = chart.createBufferedImage( 300*3, 200*3); |
String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.File.separator + tempName; |
java.io.File output = new java.io.File(pathGraficoTiposAlunos); |
ImageIO.write(image, "png", new FileOutputStream(output)); |
|
FileUploaded fileUploaded = new FileUploaded(); |
fileUploaded.setTmpName(tempName); |
fileUploaded.setTitle("Taxa global de aproveitamento"); |
fileUploaded.setDescription("Curso: " + courseReportDocument.getCourseName() + " (" + courseReportDocument.getCourseCode()+ ") ano " + courseReportDocument.getYear()); |
fileUploaded.setContentType(MimeTypeGuesser.getInstance().guessMimeType(output)); |
fileUploaded.setFileSize(output.length()); |
fileUploaded.setExtension("png"); |
return fileUploaded; |
} |
|
|
} |