integrate scales reports in gui interface
[se-panther.git] / gui-playground / src / panther / ui / ReportRepetoire.java
blob91c34a6be2ab42b1fc990a14e069c49dd6a99c4c
1 package panther.ui;
3 import java.awt.BorderLayout;
4 import javax.swing.*;
6 import org.jfree.chart.*;
7 import org.jfree.chart.axis.*;
8 import org.jfree.chart.plot.*;
9 import org.jfree.data.category.*;
11 import panther.db.*;
13 public class ReportRepetoire
14 extends JPanel
16 public ReportRepetoire(RepetoireEntry rep)
18 setName(rep.toString());
19 setLayout(new BorderLayout());
21 CategoryDataset dataset = gen_category_dataset(rep);
22 JFreeChart chart = gen_chart(dataset);
23 ChartPanel cpanel = new ChartPanel(chart);
24 add(cpanel, BorderLayout.CENTER);
27 private CategoryDataset gen_category_dataset(RepetoireEntry rep)
29 String[] series = {
30 "Student",
31 "Teacher"
34 String[] categories = {
35 "Musicality",
36 "Technique",
37 "Memorization"
40 int[] m_student = rep.get_metrics_student();
41 int[] m_teacher = rep.get_metrics_teacher();
43 DefaultCategoryDataset ds = new DefaultCategoryDataset();
45 for (int i=0; i<categories.length; i++) {
46 ds.addValue(m_student[i], series[0], categories[i]);
47 ds.addValue(m_teacher[i], series[1], categories[i]);
50 return ds;
53 private JFreeChart gen_chart(CategoryDataset ds)
55 JFreeChart chart = ChartFactory.createBarChart(
56 "Repetoire Bar Chart",
57 "Metric",
58 "Score",
59 ds,
60 PlotOrientation.VERTICAL,
61 true, true, false
64 return chart;