Subversion Repositories bacoAlunos

Rev

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

Rev 1906 Rev 1907
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 com.orsoncharts.legend.StandardLegendBuilder;
-
 
4
import jomm.utils.BytesUtils;
3
import jomm.utils.BytesUtils;
5
import jomm.utils.MimeTypeGuesser;
4
import jomm.utils.MimeTypeGuesser;
6
import org.jfree.chart.ChartFactory;
5
import org.jfree.chart.ChartFactory;
7
import org.jfree.chart.ChartPanel;
-
 
8
import org.jfree.chart.JFreeChart;
6
import org.jfree.chart.JFreeChart;
9
import org.jfree.chart.axis.CategoryAxis;
7
import org.jfree.chart.axis.CategoryAxis;
10
import org.jfree.chart.axis.ValueAxis;
8
import org.jfree.chart.axis.NumberAxis;
11
import org.jfree.chart.plot.*;
9
import org.jfree.chart.block.BlockBorder;
12
import org.jfree.chart.renderer.category.BarRenderer;
10
import org.jfree.chart.labels.ItemLabelAnchor;
-
 
11
import org.jfree.chart.labels.ItemLabelPosition;
13
import org.jfree.chart.renderer.category.CategoryItemRenderer;
12
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
14
import org.jfree.chart.renderer.category.GroupedStackedBarRenderer;
13
import org.jfree.chart.plot.CategoryPlot;
-
 
14
import org.jfree.chart.plot.PiePlot;
-
 
15
import org.jfree.chart.plot.PlotOrientation;
15
import org.jfree.data.KeyToGroupMap;
16
import org.jfree.chart.plot.RingPlot;
16
import org.jfree.data.category.CategoryRangeInfo;
17
import org.jfree.chart.renderer.category.StackedBarRenderer;
-
 
18
import org.jfree.chart.renderer.category.StandardBarPainter;
17
import org.jfree.data.category.DefaultCategoryDataset;
19
import org.jfree.data.category.DefaultCategoryDataset;
18
import org.jfree.data.general.DefaultPieDataset;
20
import org.jfree.data.general.DefaultPieDataset;
19
import org.jfree.ui.GradientPaintTransformType;
-
 
20
import org.jfree.ui.RectangleInsets;
21
import org.jfree.ui.RectangleInsets;
21
import org.jfree.ui.StandardGradientPaintTransformer;
22
import org.jfree.ui.TextAnchor;
22
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
23
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.CourseReportDocument;
23
import pt.estgp.estgweb.utils.Globals;
24
import pt.estgp.estgweb.utils.Globals;
24
import pt.estgp.estgweb.utils.documentBuilder.AutoImageWraperComponent;
-
 
25
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
25
import pt.estgp.estgweb.utils.documentBuilder.ImageComponent;
26
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
26
import pt.estgp.estgweb.web.controllers.utils.FileUploaded;
27
 
27
 
28
import javax.imageio.ImageIO;
28
import javax.imageio.ImageIO;
29
import java.awt.*;
29
import java.awt.*;
30
import java.awt.image.BufferedImage;
30
import java.awt.image.BufferedImage;
31
import java.io.FileOutputStream;
31
import java.io.FileOutputStream;
32
import java.io.IOException;
32
import java.io.IOException;
-
 
33
import java.text.DecimalFormat;
-
 
34
import java.text.NumberFormat;
33
import java.util.List;
35
import java.util.List;
34
 
36
 
35
/**
37
/**
36
 * Created by jorgemachado on 31/10/17.
38
 * Created by jorgemachado on 31/10/17.
37
 */
39
 */
Line 56... Line 58...
56
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13",""+temp.ano + "º Ano");
58
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13",""+temp.ano + "º Ano");
57
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16",""+temp.ano + "º Ano");
59
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16",""+temp.ano + "º Ano");
58
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1720Percent()*100)/100),"Aprovados 17-20",""+temp.ano + "º Ano");
60
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1720Percent()*100)/100),"Aprovados 17-20",""+temp.ano + "º Ano");
59
        }
61
        }
60
 
62
 
-
 
63
        for(UnitsLearningResultYear temp: unitsLearningResultYearList) {
-
 
64
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13","2º Ano");
-
 
65
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16","2º Ano");
-
 
66
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1720Percent()*100)/100),"Aprovados 17-20","2º Ano");
-
 
67
        }
-
 
68
 
-
 
69
        for(UnitsLearningResultYear temp: unitsLearningResultYearList) {
-
 
70
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1013Percent()*100)/100),"Aprovados 10-13","3º Ano");
-
 
71
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((int)(temp.getAprovados1416Percent()*100)/100),"Aprovados 14-16","3º Ano");
-
 
72
            data.addValue(new 1.5.0/docs/api/java/lang/Double.html">Double((32*100)/100),"Aprovados 17-20","3º Ano");
-
 
73
        }
-
 
74
 
-
 
75
 
-
 
76
 
61
        JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null,data, PlotOrientation.VERTICAL,true,false,false);
77
        JFreeChart chart = ChartFactory.createStackedBarChart(null,null,null,data, PlotOrientation.VERTICAL,true,false,false);
62
 
78
 
63
        CategoryPlot plot = chart.getCategoryPlot();
79
        CategoryPlot plot = chart.getCategoryPlot();
64
        RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0);
80
        RectangleInsets chartRectangle = new RectangleInsets(0,0,30F,0);
65
        chart.setPadding(chartRectangle);
81
        chart.setPadding(chartRectangle);
66
        plot.setBackgroundPaint(1.5.0/docs/api/java/awt/Color.html">Color.WHITE);
82
        plot.setBackgroundPaint(1.5.0/docs/api/java/awt/Color.html">Color.WHITE);
67
        CategoryAxis axis = plot.getDomainAxis();
83
        CategoryAxis axis = plot.getDomainAxis();
68
        ValueAxis axis2 = plot.getRangeAxis();
84
        NumberAxis axis2 = (NumberAxis) plot.getRangeAxis();
-
 
85
        1.5.0/docs/api/java/text/NumberFormat.html">NumberFormat pctFormat = new 1.5.0/docs/api/java/text/DecimalFormat.html">DecimalFormat("#'%'");
69
        axis.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));
86
        axis.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));
70
        axis2.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));
87
        axis2.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));
-
 
88
        axis2.setNumberFormatOverride(pctFormat);
-
 
89
 
-
 
90
        1.5.0/docs/api/java/awt/Color.html">Color brown = new 1.5.0/docs/api/java/awt/Color.html">Color(237,125,49);
-
 
91
        1.5.0/docs/api/java/awt/Color.html">Color yellow = new 1.5.0/docs/api/java/awt/Color.html">Color(255,192,0);
-
 
92
        1.5.0/docs/api/java/awt/Color.html">Color green = new 1.5.0/docs/api/java/awt/Color.html">Color(112,173,71);
-
 
93
 
71
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
94
        StackedBarRenderer renderer = (StackedBarRenderer) plot.getRenderer();
-
 
95
        renderer.setGradientPaintTransformer(null);
-
 
96
        plot.setRangeGridlinePaint(1.5.0/docs/api/java/awt/Color.html">Color.GRAY);
-
 
97
        plot.setRangeGridlinesVisible(true);
-
 
98
        plot.setRangeGridlineStroke(new 1.5.0/docs/api/java/awt/BasicStroke.html">BasicStroke(1.0f));
72
        renderer.setSeriesPaint(0, 1.5.0/docs/api/java/awt/Color.html">Color.ORANGE);
99
        renderer.setSeriesPaint(0, brown);
73
        renderer.setSeriesPaint(1, 1.5.0/docs/api/java/awt/Color.html">Color.YELLOW);
100
        renderer.setSeriesPaint(1, yellow);
74
        renderer.setSeriesPaint(2, 1.5.0/docs/api/java/awt/Color.html">Color.GREEN);
101
        renderer.setSeriesPaint(2, green);
75
        renderer.setMaximumBarWidth(.35);
102
        renderer.setMaximumBarWidth(.20);
-
 
103
 
-
 
104
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator("{2}",pctFormat));
-
 
105
        renderer.setBaseItemLabelsVisible(true);
-
 
106
        ItemLabelPosition position = new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.HALF_ASCENT_CENTER);
-
 
107
        renderer.setBasePositiveItemLabelPosition(position);
-
 
108
        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,30));
76
 
109
 
77
        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));
110
        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));
-
 
111
        chart.getLegend().setFrame(BlockBorder.NONE);
-
 
112
 
78
 
113
 
79
 
114
 
80
        1.5.0/docs/api/java/awt/image/BufferedImage.html">BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
115
        1.5.0/docs/api/java/awt/image/BufferedImage.html">BufferedImage image = chart.createBufferedImage( 300*4, 200*4);
81
        1.5.0/docs/api/java/lang/String.html">String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.1.5.0/docs/api/java/io/File.html">File.separator + tempName;
116
        1.5.0/docs/api/java/lang/String.html">String pathGraficoTiposAlunos = Globals.TMP_DIR + java.io.1.5.0/docs/api/java/io/File.html">File.separator + tempName;
82
        java.io.1.5.0/docs/api/java/io/File.html">File output = new java.io.1.5.0/docs/api/java/io/File.html">File(pathGraficoTiposAlunos);
117
        java.io.1.5.0/docs/api/java/io/File.html">File output = new java.io.1.5.0/docs/api/java/io/File.html">File(pathGraficoTiposAlunos);