/branches/grupo5/impl/conf/berserk/fcd.xml |
---|
600,4 → 600,5 |
</filterChainsDefinitions> |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/CourseReportServices.java |
---|
13,6 → 13,7 |
import pt.estgp.estgweb.services.courses.coursereport.CourseReportUtils; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.*; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.CourseUnitSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningGlobalAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.*; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.reportucsummary.CourseUnitDtpStat; |
487,13 → 488,12 |
CourseReportDocument reportDocument = CourseReportDocument.fromJson(reportDocumentJson); |
LearningResultsSection learningResultsSection = (LearningResultsSection) reportDocument.findDocumentSection(LearningResultsSection.class); |
LearningGlobalAnalysisSection learningGlobalAnalysisSection = (LearningGlobalAnalysisSection) learningResultsSection.findSection(LearningGlobalAnalysisSection.class); |
LearningAnalysisSection learningGlobalAnalysisSection = (LearningAnalysisSection) learningResultsSection.findSection(LearningAnalysisSection.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(); |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartImg.java |
---|
5,7 → 5,6 |
import org.jfree.chart.ChartFactory; |
import org.jfree.chart.JFreeChart; |
import org.jfree.chart.plot.PiePlot; |
import org.jfree.chart.plot.PlotOrientation; |
import org.jfree.chart.plot.RingPlot; |
import org.jfree.data.general.DefaultPieDataset; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/GlobalLearningResultsChartYearImg.java |
---|
1,22 → 1,12 |
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.apache.fop.fonts.base14.Helvetica; |
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 org.jfree.ui.RectangleInsets; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
import pt.estgp.estgweb.utils.Globals; |
36,32 → 26,112 |
{ |
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(); |
DefaultCategoryDataset data = new DefaultCategoryDataset(); |
for (int i = 0; i < 3; i++) |
// Ano que não consta no Plano |
UnitsLearningResult unitsLearningResult = results.years.get(0); |
double aprovadosPercent1013; |
double aprovadosPercent1416; |
double aprovadosPercent1720; |
aprovadosPercent1013 = ((int)(unitsLearningResult.getAprovados1013Percent()*100.0))/100.0; |
aprovadosPercent1416 = ((int)(unitsLearningResult.getAprovados1416Percent()*100.0))/100.0; |
aprovadosPercent1720 = ((int)(unitsLearningResult.getAprovados1720Percent()*100.0))/100.0; |
data.addValue(new Double(aprovadosPercent1013), "Aprovados 10-13 " ,(results.years.get(0).getAno()) + " Ano " ); |
data.addValue(new Double(aprovadosPercent1416), "Aprovados 14-16 " ,(results.years.get(0).getAno()) + " Ano " ); |
data.addValue(new Double(aprovadosPercent1720), "Aprovados 17-20 " ,(results.years.get(0).getAno()) + " Ano " ); |
float aaprovados1013[] = new float[10]; |
float aaprovados1416[]= new float[10]; |
float aaprovados1720[]= new float[10]; |
double aaprovadosPercent1013[]= new double[10]; |
double aaprovadosPercent1416[]= new double[10]; |
double aaprovadosPercent1720[]= new double[10]; |
int yearCounter[] = new int[10]; //Total de anos existentes na tabela |
float totalAlunos = 0; |
float totalAlunos1013 = 0; |
float totalAlunos1416 = 0; |
float totalAlunos1720 = 0; |
double totalAlunosPercent1013; |
double totalAlunosPercent1416; |
double totalAlunosPercent1720; |
// Inicialização de Valores |
for(int i = 1; i < 6; i++) |
{ |
UnitsLearningResult ola = results.years.get(i); |
aaprovados1013[i] = 0; |
aaprovados1416[i] = 0; |
aaprovados1720[i] = 0; |
aaprovadosPercent1013[i] = 0; |
aaprovadosPercent1416[i] = 0; |
aaprovadosPercent1720[i] = 0; |
yearCounter[i] = 0; |
} |
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 " ); |
// Extrair os dados recebidos |
for(int i = 1; i < 6; i++) //Years(between 1 and 5) |
{ |
for (int j = 0; j < results.years.size(); j++) //Years existent on array (between 0 and X) |
{ |
UnitsLearningResult ola = results.years.get(j); |
if (results.years.get(j).getAno() == i) |
{ |
aaprovados1013[i] += ola.getAprovados1013(); |
aaprovados1416[i] += ola.getAprovados1416(); |
aaprovados1720[i] += ola.getAprovados1720(); |
aaprovadosPercent1013[i] += ((int)(ola.getAprovados1013Percent()*100.0))/100.0; |
aaprovadosPercent1416[i] += ((int)(ola.getAprovados1416Percent()*100.0))/100.0; |
aaprovadosPercent1720[i] += ((int)(ola.getAprovados1720Percent()*100.0))/100.0; |
yearCounter[i] += 1; |
} |
} |
} |
// Adicionar os dados ao gráfico |
for (int i = 1; i <6; i++) |
{ |
aaprovadosPercent1013[i] = aaprovadosPercent1013[i] / yearCounter[i]; |
aaprovadosPercent1416[i] = aaprovadosPercent1416[i] / yearCounter[i]; |
aaprovadosPercent1720[i] = aaprovadosPercent1720[i] / yearCounter[i]; |
totalAlunos += aaprovados1013[i] * 2; |
totalAlunos += aaprovados1416[i] * 2; |
totalAlunos += aaprovados1720[i] * 2; |
totalAlunos1013 += aaprovados1013[i] * 2; |
totalAlunos1416 += aaprovados1416[i] * 2; |
totalAlunos1720 += aaprovados1720[i] * 2; |
/*Descomentar linhas seguintes para apenas aparecerem os anos com cadeires*/ |
//if(yearCounter[i] != 0) |
//{ |
data.addValue(new Double(aaprovadosPercent1013[i]), "Aprovados 10-13 " ,i + "º Ano " ); |
data.addValue(new Double(aaprovadosPercent1416[i]), "Aprovados 14-16 " ,i + "º Ano " ); |
data.addValue(new Double(aaprovadosPercent1720[i]), "Aprovados 17-20 " ,i + "º Ano " ); |
//} |
} |
// Coluna Total do Gráfico |
totalAlunosPercent1013 = totalAlunos1013/totalAlunos * 100.0; |
totalAlunosPercent1416 = totalAlunos1416/totalAlunos * 100.0; |
totalAlunosPercent1720 = totalAlunos1720/totalAlunos * 100.0; |
data.addValue(new Double(totalAlunosPercent1013), "Aprovados 10-13 " ,"Total"); |
data.addValue(new Double(totalAlunosPercent1416), "Aprovados 14-16 " ,"Total"); |
data.addValue(new Double(totalAlunosPercent1720), "Aprovados 17-20 " ,"Total"); |
String tempName = BytesUtils.generateHexKey() + ".png"; |
//Grafico Barras |
78,18 → 148,7 |
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)); |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/learningresults/components/LearningResultsChartSem.java |
---|
11,11 → 11,13 |
import org.jfree.chart.axis.NumberAxis; |
import org.jfree.chart.axis.ValueAxis; |
import org.jfree.chart.plot.CategoryPlot; |
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator; |
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 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; |
24,8 → 26,10 |
import javax.imageio.ImageIO; |
import java.awt.*; |
import java.awt.image.BufferedImage; |
import java.text.DecimalFormat; |
import java.io.FileOutputStream; |
import java.io.IOException; |
import java.util.List; |
/** |
* Created by jorgemachado on 31/10/17. |
52,63 → 56,81 |
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(); |
List <UnitsLearningResultYear> years = results.getYears(); |
List<UnitsLearningResultSemester> semester = years.get(0).semesters; |
List<UnitsLearningResultUc> uc; |
DefaultCategoryDataset data = new DefaultCategoryDataset(); |
for (int i = 0; i < 3; i++) |
// Ano que não consta no Plano |
uc = semester.get(0).ucs; |
for(int k = 0; k < uc.size(); k++) |
{ |
UnitsLearningResult ola = results.years.get(i); |
data.setValue(new Double(uc.get(k).getAprovadosPercent()), "Aprovados " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getSemElementosPercent()), "SemElementos " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getReprovadosPercent()), "Reprovados " , uc.get(k).getName()); |
} |
uc = semester.get(1).ucs; |
for(int k = 0; k < uc.size(); k++) |
{ |
data.setValue(new Double(uc.get(k).getAprovadosPercent()), "Aprovados " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getSemElementosPercent()), "SemElementos " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getReprovadosPercent()), "Reprovados " , uc.get(k).getName()); |
} |
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 " ); |
for(int i = 1; i < 6; i++) //Years(between 1 and 5) |
{ |
for(int j = 0; j < years.size(); j++) //Years existent on array (between 0 and X) |
{ |
if(results.years.get(j).getAno() == i) |
{ |
semester = years.get(j).semesters; |
for(int h = 0; h < semester.size(); h++) //Semesters (between 1 and 2) |
{ |
uc = semester.get(h).ucs; |
for(int k = 0; k < uc.size(); k++) |
{ |
data.setValue(new Double(uc.get(k).getAprovadosPercent()), "Aprovados " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getSemElementosPercent()), "SemElementos " , uc.get(k).getName()); |
data.setValue(new Double(uc.get(k).getReprovadosPercent()), "Reprovados " , uc.get(k).getName()); |
} |
} |
} |
} |
} |
String tempName = BytesUtils.generateHexKey() + ".png"; |
//Grafico Barras |
JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.VERTICAL, true,true,false); |
JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.HORIZONTAL, true,true,false); |
RectangleInsets rectangleInsets = new RectangleInsets(0,0,30F,0); |
chart.setPadding(rectangleInsets); |
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.getRenderer().setSeriesPaint(0, new Color(0, 255, 0)); |
plot.getRenderer().setSeriesPaint(1, new Color(200, 200, 200)); |
plot.getRenderer().setSeriesPaint(2, new Color(255, 0, 0)); |
plot.setBackgroundPaint(new Color(249, 231, 236)); |
BufferedImage image = chart.createBufferedImage( 300*3, 200*3); |
plot.getRenderer().setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("#.#'%'"))); |
plot.getRenderer().setBaseItemLabelsVisible(true); |
plot.getRenderer().setBaseItemLabelFont(new Font("Helvetica",Font.PLAIN,35)); |
chart.getLegend().setItemFont(new Font("Helvetica",Font.PLAIN,25)); //Letra Legenda |
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)); |
122,6 → 144,4 |
fileUploaded.setExtension("png"); |
return fileUploaded; |
} |
} |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/services/courses/coursereport/documentmodel/LearningResultsSection.java |
---|
3,6 → 3,7 |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.LearningGlobalAnalysisSection; |
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components.UnitsLearningResultsTable; |
import pt.estgp.estgweb.utils.documentBuilder.CustomPane; |
import pt.estgp.estgweb.utils.documentBuilder.DocumentSection; |
import pt.estgp.estgweb.utils.documentBuilder.GenericTextSection; |
/branches/grupo5/impl/src/java/pt/estgp/estgweb/filters/filters/IsCoordinatorInCourseImpl.java |
---|
38,8 → 38,7 |
//request.getServiceParameters().getParameter((String) filterParameters.getParameter(0));//Returns NULL atm |
String courseCode; |
courseCode = "44"; |
String courseCode = "44"; |
CourseImpl course = DaoFactory.getCourseDaoImpl().findCourseByCode(courseCode); |
if(!course.isFromCourseCommission(userSession.getUser())) |