Subversion Repositories bacoAlunos

Rev

Rev 1994 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1994 Rev 1996
Line 2... Line 2...
2
 
2
 
3
import jomm.utils.BytesUtils;
3
import jomm.utils.BytesUtils;
4
import jomm.utils.MimeTypeGuesser;
4
import jomm.utils.MimeTypeGuesser;
5
import org.jfree.chart.ChartFactory;
5
import org.jfree.chart.ChartFactory;
6
import org.jfree.chart.JFreeChart;
6
import org.jfree.chart.JFreeChart;
-
 
7
import org.jfree.chart.block.BlockBorder;
7
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
8
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
8
import org.jfree.chart.plot.CategoryPlot;
9
import org.jfree.chart.plot.CategoryPlot;
9
import org.jfree.chart.plot.PlotOrientation;
10
import org.jfree.chart.plot.PlotOrientation;
10
import org.jfree.chart.renderer.category.StackedBarRenderer;
11
import org.jfree.chart.renderer.category.StackedBarRenderer;
11
import org.jfree.data.category.DefaultCategoryDataset;
12
import org.jfree.data.category.DefaultCategoryDataset;
-
 
13
import org.jfree.ui.RectangleEdge;
12
import org.jfree.ui.RectangleInsets;
14
import org.jfree.ui.RectangleInsets;
13
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
15
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
14
import pt.estgp.estgweb.utils.Globals;
16
import pt.estgp.estgweb.utils.Globals;
15
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent;
17
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
16
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
18
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
17
 
19
 
18
import javax.imageio.ImageIO;
20
import javax.imageio.ImageIO;
19
import java.awt.*;
21
import java.awt.*;
20
import java.awt.image.BufferedImage;
22
import java.awt.image.BufferedImage;
Line 24... Line 26...
24
import java.util.List;
26
import java.util.List;
25
 
27
 
26
/**
28
/**
27
 * Created by jorgemachado on 31/10/17.
29
 * Created by jorgemachado on 31/10/17.
28
 */
30
 */
29
public class LearningResultsChartSem extends AutoImageWraperComponent
31
public class LearningResultsChartSem extends ImageComponent
30
{
32
{
31
    1.5.0/docs/api/java/lang/String.html">String semesterCode;
33
    1.5.0/docs/api/java/lang/String.html">String semesterCode;
32
 
34
 
33
 
35
 
34
    public LearningResultsChartSem() {
36
    public LearningResultsChartSem() {
Line 43... Line 45...
43
    }
45
    }
44
 
46
 
45
    public void setSemesterCode(1.5.0/docs/api/java/lang/String.html">String semesterCode) {
47
    public void setSemesterCode(1.5.0/docs/api/java/lang/String.html">String semesterCode) {
46
        this.semesterCode = semesterCode;
48
        this.semesterCode = semesterCode;
47
    }
49
    }
48
/*
50
 
49
    public FileUploaded generateChart2tmp(UnitsLearningResultsTable results, CourseReportDocument courseReportDocument) throws IOException {
51
    public FileUploaded generateChart2tmp(UnitsLearningResultsTable results, CourseReportDocument courseReportDocument) throws 1.5.0/docs/api/java/io/IOException.html">IOException {
50
        List<UnitsLearningResultYear> years = results.getYears();
52
        List<UnitsLearningResultYear> years = results.getYears();
-
 
53
        List<UnitsLearningResultSemester> semester;
-
 
54
        List<UnitsLearningResultUc> uc;
51
 
55
 
52
        String tempName = BytesUtils.generateHexKey() + ".png";
56
        1.5.0/docs/api/java/lang/String.html">String tempName = BytesUtils.generateHexKey() + ".png";
53
 
57
 
54
        DefaultCategoryDataset data = new DefaultCategoryDataset();
58
        DefaultCategoryDataset data = new DefaultCategoryDataset();
55
 
59
 
56
        for (int i =0; i<years.size(); i++){
60
        for (int i=0; i<years.size(); i++){
-
 
61
            semester = years.get(i).semesters;
-
 
62
            for (int k = 0; k < semester.size(); k++){
-
 
63
                uc = semester.get(k).ucs;
-
 
64
                for (int j = 0; j < uc.size(); j++) {
57
            data.addValue(new Double(years.get(i).getAprovados1013Percent()), "Aprovados 10-13", years.get(i).getAno() + "º ano");
65
                    data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(uc.get(j).getSemElementosPercent()), "Sem elementos", uc.get(j).getName());
58
            data.addValue(new Double(years.get(i).getAprovados1416Percent()), "Aprovados 14-16", years.get(i).getAno() + "º ano");
66
                    data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(uc.get(j).getReprovadosPercent()), "Reprovados ", uc.get(j).getName());
59
            data.addValue(new Double(years.get(i).getAprovados1720Percent()), "Aprovados 17-20", years.get(i).getAno() + "º ano");
67
                    data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double(uc.get(j).getAprovadosPercent()), "Aprovados", uc.get(j).getName());
-
 
68
                }
-
 
69
            }
60
        }
70
        }
61
 
71
 
62
        // Total
-
 
63
        data.addValue(new Double(results.getAprovados1013Percent()), "Aprovados 10-13", "Total");
-
 
64
        data.addValue(new Double(results.getAprovados1416Percent()), "Aprovados 14-16", "Total");
-
 
65
        data.addValue(new Double(results.getAprovados1720Percent()), "Aprovados 17-20", "Total");
-
 
66
 
-
 
67
        JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null, data, PlotOrientation.VERTICAL,true, false, false);
72
        JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null, data, PlotOrientation.HORIZONTAL,true, false, false);
68
 
73
 
69
        chart.setBackgroundPaint(Color.WHITE);
74
        chart.setBackgroundPaint(1.5.0/docs/api/java/awt/Color.html">Color.WHITE);
70
        // Legenda
75
        // Legenda
71
        chart.getLegend().setItemFont(new Font("Helvetica", Font.PLAIN,30));
76
        chart.getLegend().setItemFont(new 1.5.0/docs/api/java/awt/Font.html">Font("Helvetica", 1.5.0/docs/api/java/awt/Font.html">Font.PLAIN,30));
-
 
77
        chart.getLegend().setPosition(RectangleEdge.TOP);
-
 
78
        chart.getLegend().setFrame(BlockBorder.NONE);
-
 
79
        chart.getLegend().setItemLabelPadding(new RectangleInsets(0,10F,25F,20F));
-
 
80
 
72
 
81
 
73
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
82
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
74
        plot.setBackgroundPaint(Color.WHITE);
83
        plot.setBackgroundPaint(1.5.0/docs/api/java/awt/Color.html">Color.WHITE);
75
        plot.setRangeGridlinePaint(Color.GRAY);
84
        plot.setDomainGridlinesVisible(false);
76
        plot.setRangeGridlinesVisible(true);
85
        plot.setOutlineVisible(false);
-
 
86
        //Remover label do eixo
77
        plot.setRangeGridlineStroke(new BasicStroke(1.0f));
87
        plot.getRangeAxis().setTickLabelsVisible(false);
78
        plot.getDomainAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30));
88
        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, 30));
79
        plot.getRangeAxis().setTickLabelFont(new Font("Helvetica", Font.PLAIN, 30));
89
        plot.getRangeAxis().setTickLabelFont(new 1.5.0/docs/api/java/awt/Font.html">Font("Helvetica", 1.5.0/docs/api/java/awt/Font.html">Font.PLAIN, 30));
80
 
90
 
81
 
-
 
82
        RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0);
-
 
83
        chart.setPadding(chartRectangle);
-
 
84
 
-
 
85
        StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
91
        StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
86
        renderer.setSeriesPaint(0, new Color(237, 132, 0));
92
        renderer.setSeriesPaint(0, new 1.5.0/docs/api/java/awt/Color.html">Color(170, 165, 173));
87
        renderer.setSeriesPaint(1, new Color(255, 250, 29));
93
        renderer.setSeriesPaint(1, new 1.5.0/docs/api/java/awt/Color.html">Color(255, 6, 4));
88
        renderer.setSeriesPaint(2, new Color(93,173, 21));
94
        renderer.setSeriesPaint(2, new 1.5.0/docs/api/java/awt/Color.html">Color(8, 237, 0));
89
        renderer.setMaximumBarWidth(.2);
95
        renderer.setMaximumBarWidth(0.1);
90
 
96
 
91
        //Percentagem dentro das barras
97
        //Percentagem dentro das barras
92
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", new DecimalFormat("#.#'%'")));
98
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}", new 1.5.0/docs/api/java/text/DecimalFormat.html">DecimalFormat("#.#'%'")));
93
        renderer.setBaseItemLabelsVisible(true);
99
        renderer.setBaseItemLabelsVisible(true);
94
        renderer.setBaseItemLabelFont(new Font("Helvetica",Font.PLAIN,25));
100
        renderer.setBaseItemLabelFont(new 1.5.0/docs/api/java/awt/Font.html">Font("Helvetica",1.5.0/docs/api/java/awt/Font.html">Font.PLAIN,25));
Line 105... Line 111...
105
        fileUploaded.setDescription("Curso: " + courseReportDocument.getCourseName() + " (" + courseReportDocument.getCourseCode()+ ") ano " + courseReportDocument.getYear());
111
        fileUploaded.setDescription("Curso: " + courseReportDocument.getCourseName() + " (" + courseReportDocument.getCourseCode()+ ") ano " + courseReportDocument.getYear());
106
        fileUploaded.setContentType(MimeTypeGuesser.getInstance().guessMimeType(output));
112
        fileUploaded.setContentType(MimeTypeGuesser.getInstance().guessMimeType(output));
107
        fileUploaded.setFileSize(output.length());
113
        fileUploaded.setFileSize(output.length());
108
        fileUploaded.setExtension("png");
114
        fileUploaded.setExtension("png");
109
        return fileUploaded;
115
        return fileUploaded;
110
    }*/
116
    }
111
 
117
 
112
}
118
}