Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1992 → Rev 1993

/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java
483,9 → 483,42
return view.toJson();
}
 
public String generateLearningResultsChartSem(String reportDocumentJson,UserSession session) throws IOException {
 
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson);
LearningResultsSection learningResultsSection = (LearningResultsSection) reportDocument.findDocumentSection(LearningResultsSection.class);
LearningGlobalAnalysisSection learningGlobalAnalysisSection = (LearningGlobalAnalysisSection) learningResultsSection.findSection(LearningGlobalAnalysisSection.class);
LearningResultsChartSem chartImg = (LearningResultsChartSem) learningGlobalAnalysisSection.findDocComponent(LearningResultsChartSem.class);
 
 
UnitsLearningResultsTable table = (UnitsLearningResultsTable) learningResultsSection.findDocComponent(UnitsLearningResultsTable.class);
 
 
FileUploaded fileUploaded = chartImg.generateChart2tmp(table,reportDocument);
 
RepositoryService repositoryService = new RepositoryService();
 
boolean imageInitialized = chartImg.getImage() != null
&&
chartImg.getImage().getIdentifier() != null;
 
RepositoryFile4JsonView view;
if(imageInitialized)
{
String identifier = chartImg.getImage().getIdentifier();
view = repositoryService.replaceRepositoryFileFromFileUpload(identifier, fileUploaded, ResourceAccessControlEnum.privateDomain, session);
}
else
{
view = repositoryService.storeRepositoryFileFromFileUpload(fileUploaded,ResourceAccessControlEnum.privateDomain,session);
}
chartImg.setImage(view);
//TODO FALTA GUARDAR O JSON NO CURSO
return view.toJson();
}
 
 
 
/****************************************************************************/
/*
 
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java
4,6 → 4,7
 
import jomm.utils.BytesUtils;
import jomm.utils.MimeTypeGuesser;
import org.apache.fop.fonts.base14.Helvetica;
import org.apache.log4j.Category;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
16,6 → 17,7
import org.jfree.chart.plot.RingPlot;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.RectangleInsets;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
import pt.estgp.estgweb.utils.Globals;
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
65,6 → 67,11
//Grafico Barras
JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.VERTICAL, true,true,false);
 
chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN, 20));
 
RectangleInsets rectangleInsets = new RectangleInsets(0,0,30F,0);
chart.setPadding(rectangleInsets);
 
chart.setBackgroundPaint(new Color(255, 231, 242));
 
CategoryPlot plot = chart.getCategoryPlot();
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/LearningResultsChartSem.java
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;
}
 
 
}