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 | } |