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