Rev 1993 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1993 | Rev 1995 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components; |
1 | package pt.estgp.estgweb.services.courses.coursereport.documentmodel.learningresults.components; |
2 | 2 | ||
3 | //import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent; |
- | |
4 | - | ||
5 | import jomm.utils.BytesUtils; |
3 | import jomm.utils.BytesUtils; |
6 | import jomm.utils.MimeTypeGuesser; |
4 | import jomm.utils.MimeTypeGuesser; |
7 | import org.apache.fop.fonts.base14.Helvetica; |
- | |
8 | import org.apache.log4j.Category; |
- | |
9 | import org.jfree.chart.ChartFactory; |
5 | import org.jfree.chart.ChartFactory; |
10 | import org.jfree.chart.ChartFrame; |
- | |
11 | import org.jfree.chart.JFreeChart; |
6 | import org.jfree.chart.JFreeChart; |
12 | import org.jfree.chart.axis.NumberAxis; |
- | |
13 | import org.jfree.chart.axis.ValueAxis; |
- | |
14 | import org.jfree.chart.plot.CategoryPlot; |
7 | import org.jfree.chart.plot.CategoryPlot; |
15 | import org.jfree.chart.plot.PiePlot; |
- | |
16 | import org.jfree.chart.plot.PlotOrientation; |
8 | import org.jfree.chart.plot.PlotOrientation; |
17 | import org.jfree.chart.plot.RingPlot; |
- | |
18 | import org.jfree.data.category.DefaultCategoryDataset; |
9 | import org.jfree.data.category.DefaultCategoryDataset; |
19 | import org.jfree.data.general.DefaultPieDataset; |
- | |
20 | import org.jfree.ui.RectangleInsets; |
10 | import org.jfree.ui.RectangleInsets; |
21 | import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
11 | import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument; |
22 | import pt.estgp.estgweb.utils.Globals; |
12 | import pt.estgp.estgweb.utils.Globals; |
23 | import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
13 | import pt.estgp.estgweb.utils.documentBuilder.ImageComponent; |
24 | import pt.estgp.estgweb.web.controllers.utils.FileUploaded; |
14 | import pt.estgp.estgweb.web.controllers.utils.FileUploaded; |
Line 34... | Line 24... | ||
34 | */ |
24 | */ |
35 | public class GlobalLearningResultsChartYearImg extends ImageComponent |
25 | public class GlobalLearningResultsChartYearImg extends ImageComponent |
36 | { |
26 | { |
37 | public FileUploaded generateChart2tmp(UnitsLearningResultsTable results,CourseReportDocument courseReportDocument) throws 1.5.0/docs/api/java/io/IOException.html">IOException |
27 | public FileUploaded generateChart2tmp(UnitsLearningResultsTable results,CourseReportDocument courseReportDocument) throws 1.5.0/docs/api/java/io/IOException.html">IOException |
38 | { |
28 | { |
39 | float aprovados1013 = results.getAprovados(); |
- | |
40 | float aprovados1416 = results.getAprovados(); |
- | |
41 | float aprovados1720 = results.getAprovados(); |
- | |
42 | double aprovadosPercent1013 = results.getAprovados(); |
- | |
43 | double aprovadosPercent1416 = results.getAprovados(); |
- | |
44 | double aprovadosPercent1720 = results.getAprovados(); |
- | |
45 | - | ||
46 | DefaultCategoryDataset data = new DefaultCategoryDataset(); |
29 | DefaultCategoryDataset data = new DefaultCategoryDataset(); |
- | 30 | ||
- | 31 | ||
- | 32 | // Ano que não consta no Plano |
|
- | 33 | UnitsLearningResult unitsLearningResult = results.years.get(0); |
|
- | 34 | ||
- | 35 | double aprovadosPercent1013; |
|
- | 36 | double aprovadosPercent1416; |
|
- | 37 | double aprovadosPercent1720; |
|
- | 38 | ||
- | 39 | aprovadosPercent1013 = ((int)(unitsLearningResult.getAprovados1013Percent()*100.0))/100.0; |
|
- | 40 | aprovadosPercent1416 = ((int)(unitsLearningResult.getAprovados1416Percent()*100.0))/100.0; |
|
- | 41 | aprovadosPercent1720 = ((int)(unitsLearningResult.getAprovados1720Percent()*100.0))/100.0; |
|
- | 42 | ||
- | 43 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1013), "Aprovados 10-13 " ,(results.years.get(0).getAno()) + " Ano " ); |
|
- | 44 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1416), "Aprovados 14-16 " ,(results.years.get(0).getAno()) + " Ano " ); |
|
- | 45 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1720), "Aprovados 17-20 " ,(results.years.get(0).getAno()) + " Ano " ); |
|
- | 46 | ||
- | 47 | ||
- | 48 | ||
- | 49 | float aaprovados1013[] = new float[10]; |
|
- | 50 | float aaprovados1416[]= new float[10]; |
|
- | 51 | float aaprovados1720[]= new float[10]; |
|
- | 52 | double aaprovadosPercent1013[]= new double[10]; |
|
- | 53 | double aaprovadosPercent1416[]= new double[10]; |
|
- | 54 | double aaprovadosPercent1720[]= new double[10]; |
|
- | 55 | ||
- | 56 | int yearCounter[] = new int[10]; //Total de anos existentes na tabela |
|
- | 57 | ||
- | 58 | float totalAlunos = 0; |
|
- | 59 | float totalAlunos1013 = 0; |
|
- | 60 | float totalAlunos1416 = 0; |
|
- | 61 | float totalAlunos1720 = 0; |
|
- | 62 | double totalAlunosPercent1013; |
|
- | 63 | double totalAlunosPercent1416; |
|
- | 64 | double totalAlunosPercent1720; |
|
- | 65 | ||
- | 66 | ||
- | 67 | // Inicialização de Valores |
|
47 | for (int i = 0; i < 3; i++) |
68 | for(int i = 1; i < 6; i++) |
48 | { |
69 | { |
- | 70 | aaprovados1013[i] = 0; |
|
- | 71 | aaprovados1416[i] = 0; |
|
- | 72 | aaprovados1720[i] = 0; |
|
- | 73 | aaprovadosPercent1013[i] = 0; |
|
- | 74 | aaprovadosPercent1416[i] = 0; |
|
49 | UnitsLearningResult ola = results.years.get(i); |
75 | aaprovadosPercent1720[i] = 0; |
- | 76 | yearCounter[i] = 0; |
|
- | 77 | } |
|
50 | 78 | ||
- | 79 | ||
- | 80 | // Extrair os dados recebidos |
|
- | 81 | for(int i = 1; i < 6; i++) //Years(between 1 and 5) |
|
- | 82 | { |
|
- | 83 | for (int j = 0; j < results.years.size(); j++) //Years existent on array (between 0 and X) |
|
- | 84 | { |
|
- | 85 | UnitsLearningResult ola = results.years.get(j); |
|
- | 86 | ||
- | 87 | if (results.years.get(j).getAno() == i) |
|
- | 88 | { |
|
51 | aprovados1013 = ola.getAprovados1013(); |
89 | aaprovados1013[i] += ola.getAprovados1013(); |
52 | aprovados1416 = ola.getAprovados1416(); |
90 | aaprovados1416[i] += ola.getAprovados1416(); |
53 | aprovados1720 = ola.getAprovados1720(); |
91 | aaprovados1720[i] += ola.getAprovados1720(); |
54 | aprovadosPercent1013 = ((int)(ola.getAprovados1013Percent()*100.0))/100.0; |
92 | aaprovadosPercent1013[i] += ((int)(ola.getAprovados1013Percent()*100.0))/100.0; |
55 | aprovadosPercent1416 = ((int)(ola.getAprovados1416Percent()*100.0))/100.0; |
93 | aaprovadosPercent1416[i] += ((int)(ola.getAprovados1416Percent()*100.0))/100.0; |
56 | aprovadosPercent1720 = ((int)(ola.getAprovados1720Percent()*100.0))/100.0; |
94 | aaprovadosPercent1720[i] += ((int)(ola.getAprovados1720Percent()*100.0))/100.0; |
57 | - | ||
58 | //if (aprovados1013> 0) |
95 | yearCounter[i] += 1; |
59 | data.setValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1013), "Aprovados1013 " ,(i + 1) + "º Ano " ); |
- | |
60 | //if (aprovados1416> 0) |
96 | } |
61 | data.setValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1416), "Aprovados1416 " ,(i + 1) + "º Ano " ); |
- | |
62 | //if (aprovados1720> 0) |
97 | } |
63 | data.setValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aprovadosPercent1720), "Aprovados1720 " ,(i + 1) + "º Ano " ); |
- | |
64 | } |
98 | } |
- | 99 | ||
- | 100 | // Adicionar os dados ao gráfico |
|
- | 101 | for (int i = 1; i <6; i++) |
|
- | 102 | { |
|
- | 103 | aaprovadosPercent1013[i] = aaprovadosPercent1013[i] / yearCounter[i]; |
|
- | 104 | aaprovadosPercent1416[i] = aaprovadosPercent1416[i] / yearCounter[i]; |
|
- | 105 | aaprovadosPercent1720[i] = aaprovadosPercent1720[i] / yearCounter[i]; |
|
- | 106 | ||
- | 107 | totalAlunos += aaprovados1013[i] * 2; |
|
- | 108 | totalAlunos += aaprovados1416[i] * 2; |
|
- | 109 | totalAlunos += aaprovados1720[i] * 2; |
|
- | 110 | ||
- | 111 | totalAlunos1013 += aaprovados1013[i] * 2; |
|
- | 112 | totalAlunos1416 += aaprovados1416[i] * 2; |
|
- | 113 | totalAlunos1720 += aaprovados1720[i] * 2; |
|
- | 114 | ||
- | 115 | ||
- | 116 | /*Descomentar linhas seguintes para apenas aparecerem os anos com cadeires*/ |
|
- | 117 | //if(yearCounter[i] != 0) |
|
- | 118 | //{ |
|
- | 119 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aaprovadosPercent1013[i]), "Aprovados 10-13 " ,i + "º Ano " ); |
|
- | 120 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aaprovadosPercent1416[i]), "Aprovados 14-16 " ,i + "º Ano " ); |
|
- | 121 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(aaprovadosPercent1720[i]), "Aprovados 17-20 " ,i + "º Ano " ); |
|
- | 122 | //} |
|
- | 123 | } |
|
- | 124 | ||
- | 125 | // Coluna Total do Gráfico |
|
- | 126 | totalAlunosPercent1013 = totalAlunos1013/totalAlunos * 100.0; |
|
- | 127 | totalAlunosPercent1416 = totalAlunos1416/totalAlunos * 100.0; |
|
- | 128 | totalAlunosPercent1720 = totalAlunos1720/totalAlunos * 100.0; |
|
- | 129 | ||
- | 130 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(totalAlunosPercent1013), "Aprovados 10-13 " ,"Total"); |
|
- | 131 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(totalAlunosPercent1416), "Aprovados 14-16 " ,"Total"); |
|
- | 132 | data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(totalAlunosPercent1720), "Aprovados 17-20 " ,"Total"); |
|
- | 133 | ||
- | 134 | ||
65 | 1.5.0/docs/api/java/lang/String.html">String tempName = BytesUtils.generateHexKey() + ".png"; |
135 | 1.5.0/docs/api/java/lang/String.html">String tempName = BytesUtils.generateHexKey() + ".png"; |
66 | 136 | ||
67 | //Grafico Barras |
137 | //Grafico Barras |
68 | JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.VERTICAL, true,true,false); |
138 | JFreeChart chart = ChartFactory.createStackedBarChart(null, null,null,data, PlotOrientation.VERTICAL, true,true,false); |
69 | 139 | ||
Line 76... | Line 146... | ||
76 | 146 | ||
77 | CategoryPlot plot = chart.getCategoryPlot(); |
147 | CategoryPlot plot = chart.getCategoryPlot(); |
78 | 148 | ||
79 | plot.setRangeGridlinePaint(1.5.0/docs/api/java/awt/Color.html">Color.black); |
149 | plot.setRangeGridlinePaint(1.5.0/docs/api/java/awt/Color.html">Color.black); |
80 | 150 | ||
81 | //plot.setDrawingSupplier(new ChartBuilderUtil.ChartDrawingSupplier()); |
- | |
82 | /* |
- | |
83 | plot.setSectionPaint(0, new Color(255, 0, 0)); |
- | |
84 | plot.setSectionPaint(1, new Color(15, 218, 10)); |
- | |
85 | plot.setSectionPaint(2, new Color(200, 200, 200)); |
- | |
86 | plot.setBackgroundPaint(new Color(255, 255, 255)); |
- | |
87 | plot.setOutlineVisible(false); |
- | |
88 | - | ||
89 | plot.setLabelFont(new Font( |
- | |
90 | "Helvetica", Font.PLAIN, 30)); |
- | |
91 | */ |
- | |
92 | 151 | ||
93 | plot.getDomainAxis().setTickLabelFont(new 1.5.0/docs/api/java/awt/Font.html">Font("Helvetica", 1.5.0/docs/api/java/awt/Font.html">Font.PLAIN, 25)); |
152 | plot.getDomainAxis().setTickLabelFont(new 1.5.0/docs/api/java/awt/Font.html">Font("Helvetica", 1.5.0/docs/api/java/awt/Font.html">Font.PLAIN, 25)); |
94 | 153 | ||
95 | plot.getRenderer().setSeriesPaint(0, new 1.5.0/docs/api/java/awt/Color.html">Color(255, 171, 28)); |
154 | plot.getRenderer().setSeriesPaint(0, new 1.5.0/docs/api/java/awt/Color.html">Color(255, 171, 28)); |
96 | plot.getRenderer().setSeriesPaint(1, new 1.5.0/docs/api/java/awt/Color.html">Color(255, 253, 44)); |
155 | plot.getRenderer().setSeriesPaint(1, new 1.5.0/docs/api/java/awt/Color.html">Color(255, 253, 44)); |