Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1859 → Rev 1879

/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartImg.java
1,11 → 1,129
package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components;
 
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent;
import jomm.utils.BytesUtils;
import jomm.utils.MimeTypeGuesser;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.RingPlot;
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 GlobalLearningResultsChartImg extends AutoImageWraperComponent
public class GlobalLearningResultsChartImg extends ImageComponent
{
/**
*
* @param results
* @return the tmp path for generated chart
* @throws IOException
*/
public FileUploaded generateChart2tmp(UnitsLearningResultsTable results,CourseReportDocument courseReportDocument) throws IOException
{
float aprovados = results.getAprovados();
float reprovados = results.getReprovados();
float semElementos = results.getSemElementos();
double aprovadosPercent = ((int)(results.getAprovadosPercent()*100.0))/100.0;
double reprovadosPercent = ((int)(results.getReprovadosPercent()*100.0))/100.0;
double semElementosPercent = ((int)(results.getSemElementosPercent()*100.0))/100.0;
 
}
String tempName = BytesUtils.generateHexKey() + ".png";
 
DefaultPieDataset data = new DefaultPieDataset();
if(reprovados > 0)
data.setValue("Reprovados " + reprovadosPercent + "%", new Double(reprovados));
if(aprovados > 0)
data.setValue("Aprovados " + aprovadosPercent + "%", new Double(aprovados));
if(semElementos > 0)
data.setValue("Sem Elementos " + semElementosPercent + "%", new Double(semElementos));
JFreeChart chart = ChartFactory.createRingChart(null, data, false, true, false);
chart.setBackgroundPaint(new Color(255,255,255));
PiePlot plot = (RingPlot) chart.getPlot();
plot.setLabelBackgroundPaint(new Color(255, 249, 235));
plot.setLabelPaint(new Color(88, 88, 90));
//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));
 
 
BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
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;
}
 
public static void main(String [] args) throws IOException {
float aprovados = 10;
float reprovados = 2;
float semElementos = 4;
double aprovadosPercent = ((int)10/16*100.0)/100.0;
double reprovadosPercent = ((int)2/16*100.0)/100.0;
double semElementosPercent = ((int)4/16*100.0)/100.0;
 
String tempName = BytesUtils.generateHexKey() + ".png";
 
DefaultPieDataset data = new DefaultPieDataset();
if(reprovados > 0)
data.setValue("Reprovados " + reprovadosPercent + "%", new Double(reprovados));
if(aprovados > 0)
data.setValue("Aprovados " + aprovadosPercent + "%", new Double(aprovados));
if(semElementos > 0)
data.setValue("Sem Elementos " + semElementosPercent + "%", new Double(semElementos));
JFreeChart chart = ChartFactory.createRingChart(null, data, false, true, false);
chart.setBackgroundPaint(new Color(255,255,255));
PiePlot plot = (RingPlot) chart.getPlot();
plot.setLabelBackgroundPaint(new Color(255, 249, 235));
plot.setLabelPaint(new Color(88, 88, 90));
//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));
 
 
BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
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));
 
 
}
 
 
}
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/UnitsLearningResult.java
6,21 → 6,23
public class UnitsLearningResult
{
float cumprimentoProgramaPercent;
int alunosInscritos;
float alunosInscritos;
 
int semElementos;
float semElementos;
float semElementosPercent;
int aprovados;
float aprovados;
float aprovadosPercent;
int reprovados;
float reprovados;
float reprovadosPercent;
int aprovados1013;
float aprovados1013;
float aprovados1013Percent;
int aprovados1416;
float aprovados1416;
float aprovados1416Percent;
int aprovados1720;
float aprovados1720;
float aprovados1720Percent;
 
private boolean manual;
 
public float getCumprimentoProgramaPercent() {
return cumprimentoProgramaPercent;
}
29,19 → 31,19
this.cumprimentoProgramaPercent = cumprimentoProgramaPercent;
}
 
public int getAlunosInscritos() {
public float getAlunosInscritos() {
return alunosInscritos;
}
 
public void setAlunosInscritos(int alunosInscritos) {
public void setAlunosInscritos(float alunosInscritos) {
this.alunosInscritos = alunosInscritos;
}
 
public int getSemElementos() {
public float getSemElementos() {
return semElementos;
}
 
public void setSemElementos(int semElementos) {
public void setSemElementos(float semElementos) {
this.semElementos = semElementos;
}
 
53,11 → 55,11
this.semElementosPercent = semElementosPercent;
}
 
public int getAprovados() {
public float getAprovados() {
return aprovados;
}
 
public void setAprovados(int aprovados) {
public void setAprovados(float aprovados) {
this.aprovados = aprovados;
}
 
69,11 → 71,11
this.aprovadosPercent = aprovadosPercent;
}
 
public int getReprovados() {
public float getReprovados() {
return reprovados;
}
 
public void setReprovados(int reprovados) {
public void setReprovados(float reprovados) {
this.reprovados = reprovados;
}
 
85,11 → 87,11
this.reprovadosPercent = reprovadosPercent;
}
 
public int getAprovados1013() {
public float getAprovados1013() {
return aprovados1013;
}
 
public void setAprovados1013(int aprovados1013) {
public void setAprovados1013(float aprovados1013) {
this.aprovados1013 = aprovados1013;
}
 
101,11 → 103,11
this.aprovados1013Percent = aprovados1013Percent;
}
 
public int getAprovados1416() {
public float getAprovados1416() {
return aprovados1416;
}
 
public void setAprovados1416(int aprovados1416) {
public void setAprovados1416(float aprovados1416) {
this.aprovados1416 = aprovados1416;
}
 
117,11 → 119,11
this.aprovados1416Percent = aprovados1416Percent;
}
 
public int getAprovados1720() {
public float getAprovados1720() {
return aprovados1720;
}
 
public void setAprovados1720(int aprovados1720) {
public void setAprovados1720(float aprovados1720) {
this.aprovados1720 = aprovados1720;
}
 
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/UnitsLearningResultsTable.java
8,35 → 8,26
/**
* Created by jorgemachado on 11/10/17.
*/
public class UnitsLearningResultsTable extends AbstractTableComponent
{
public class UnitsLearningResultsTable extends AbstractTableComponent {
 
float cumprimentoProgramaPercent;
int alunosInscritos;
float alunosInscritos;
 
int semElementos;
float semElementos;
float semElementosPercent;
int aprovados;
float aprovados;
float aprovadosPercent;
int reprovados;
float reprovados;
float reprovadosPercent;
int aprovados1013;
float aprovados1013;
float aprovados1013Percent;
int aprovados1416;
float aprovados1416;
float aprovados1416Percent;
int aprovados1720;
float aprovados1720;
float aprovados1720Percent;
 
List<UnitsLearningResultYear> years = new ArrayList<UnitsLearningResultYear>();
 
public List<UnitsLearningResultYear> getYears() {
return years;
}
 
public void setYears(List<UnitsLearningResultYear> years) {
this.years = years;
}
 
public float getCumprimentoProgramaPercent() {
return cumprimentoProgramaPercent;
}
45,19 → 36,19
this.cumprimentoProgramaPercent = cumprimentoProgramaPercent;
}
 
public int getAlunosInscritos() {
public float getAlunosInscritos() {
return alunosInscritos;
}
 
public void setAlunosInscritos(int alunosInscritos) {
public void setAlunosInscritos(float alunosInscritos) {
this.alunosInscritos = alunosInscritos;
}
 
public int getSemElementos() {
public float getSemElementos() {
return semElementos;
}
 
public void setSemElementos(int semElementos) {
public void setSemElementos(float semElementos) {
this.semElementos = semElementos;
}
 
69,11 → 60,11
this.semElementosPercent = semElementosPercent;
}
 
public int getAprovados() {
public float getAprovados() {
return aprovados;
}
 
public void setAprovados(int aprovados) {
public void setAprovados(float aprovados) {
this.aprovados = aprovados;
}
 
85,11 → 76,11
this.aprovadosPercent = aprovadosPercent;
}
 
public int getReprovados() {
public float getReprovados() {
return reprovados;
}
 
public void setReprovados(int reprovados) {
public void setReprovados(float reprovados) {
this.reprovados = reprovados;
}
 
101,11 → 92,11
this.reprovadosPercent = reprovadosPercent;
}
 
public int getAprovados1013() {
public float getAprovados1013() {
return aprovados1013;
}
 
public void setAprovados1013(int aprovados1013) {
public void setAprovados1013(float aprovados1013) {
this.aprovados1013 = aprovados1013;
}
 
117,11 → 108,11
this.aprovados1013Percent = aprovados1013Percent;
}
 
public int getAprovados1416() {
public float getAprovados1416() {
return aprovados1416;
}
 
public void setAprovados1416(int aprovados1416) {
public void setAprovados1416(float aprovados1416) {
this.aprovados1416 = aprovados1416;
}
 
133,11 → 124,11
this.aprovados1416Percent = aprovados1416Percent;
}
 
public int getAprovados1720() {
public float getAprovados1720() {
return aprovados1720;
}
 
public void setAprovados1720(int aprovados1720) {
public void setAprovados1720(float aprovados1720) {
this.aprovados1720 = aprovados1720;
}
 
148,4 → 139,12
public void setAprovados1720Percent(float aprovados1720Percent) {
this.aprovados1720Percent = aprovados1720Percent;
}
}
 
public List<UnitsLearningResultYear> getYears() {
return years;
}
 
public void setYears(List<UnitsLearningResultYear> years) {
this.years = years;
}
}
/branches/grupo3/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/CourseReportDocument.java
5,6 → 5,7
import org.apache.log4j.Logger;
import org.json.JSONException;
import org.json.JSONObject;
import pt.estgp.estgweb.domain.Course;
import pt.estgp.estgweb.domain.utils.JsonView;
import pt.estgp.estgweb.utils.documentBuilder.Document;
import pt.estgp.estgweb.utils.documentBuilder.DocumentSection;
20,20 → 21,53
 
private static final Logger logger = Logger.getLogger(CourseReportDocument.class);
 
private String courseCode;
private String courseName;
private String year;
 
 
 
public CourseReportDocument()
{
 
}
 
public void init()
public String getCourseCode() {
return courseCode;
}
 
public void setCourseCode(String courseCode) {
this.courseCode = courseCode;
}
 
public String getCourseName() {
return courseName;
}
 
public void setCourseName(String courseName) {
this.courseName = courseName;
}
 
public String getYear() {
return year;
}
 
public void setYear(String year) {
this.year = year;
}
 
public void init(Course c,String year)
{
setYear(year);
setCourseCode(c.getCode());
setCourseName(c.getName());
 
//1 - Introducao
IntroSection introSection = new IntroSection();
introSection.init();
getSections().add(introSection);
 
//2 - Mapa Sintese dos Relatórios dos Responsáveis das UC's
//2 - Mapa Sintese dos Relatórios dos Responsáveis das UC's
ReportsUcSummarySection reportsUcSummarySection = new ReportsUcSummarySection();
reportsUcSummarySection.init();
getSections().add(reportsUcSummarySection);
43,12 → 77,12
learningResultsSection.init();
getSections().add(learningResultsSection);
 
//4 - Inquéritos
//4 - Inquéritos
SurveysSection surveysSection = new SurveysSection();
surveysSection.init();
getSections().add(surveysSection);
 
//5 - Conclusões
//5 - Conclusões
ConclusionsSection conclusionsSection = new ConclusionsSection();
conclusionsSection.init();
getSections().add(conclusionsSection);
126,4 → 160,4
 
 
 
}
}