/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 |
} |
} |