Subversion Repositories bacoAlunos

Rev

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));