source: ether_eccad/trunk/ECCAD_INTERFACE/WEB-INF/src/org/medias/eccad/metier/statistique/ServiceGraphe.java @ 68

Last change on this file since 68 was 68, checked in by cbipsl, 14 years ago

commit v1 eccad

  • Property svn:executable set to *
File size: 5.5 KB
Line 
1package org.medias.eccad.metier.statistique;
2
3import java.awt.Color;
4import java.io.File;
5import java.io.FileNotFoundException;
6import java.io.FileOutputStream;
7import java.io.IOException;
8import java.io.OutputStream;
9import java.text.SimpleDateFormat;
10import java.util.List;
11
12
13
14import org.jfree.chart.ChartFactory;
15import org.jfree.chart.ChartUtilities;
16import org.jfree.chart.JFreeChart;
17import org.jfree.chart.axis.DateAxis;
18import org.jfree.chart.plot.XYPlot;
19import org.jfree.chart.renderer.xy.XYErrorRenderer;
20import org.jfree.data.time.Day;
21import org.jfree.data.time.TimeSeries;
22import org.jfree.data.time.TimeSeriesCollection;
23import org.jfree.data.xy.XYDataset;
24import org.medias.eccad.helpers.Donnees;
25import org.medias.eccad.helpers.LoggerPerso;
26import org.medias.eccad.modele.Valeur;
27
28public class ServiceGraphe {
29       
30        public String genereGraphe(String identifiant, List<Valeur> liste_valeur) {
31                File fichier = new File(Donnees.getHome() + "/images/graphes_temporaires/" + identifiant +"_graphe.png");
32                OutputStream out = null;
33               
34                try {
35                        out = new FileOutputStream(fichier);
36                        getGraphe(out, liste_valeur);
37                } catch (FileNotFoundException e) {
38                        LoggerPerso.log(ServiceGraphe.class, LoggerPerso.DEBUG, "erreur d'écriture du graphe", e);
39                        return "/";
40                } catch (IOException e) {
41                        LoggerPerso.log(ServiceGraphe.class, LoggerPerso.DEBUG, "erreur d'écriture du graphe", e);
42                        return "/";
43                }
44               
45                return "/images/graphes_temporaires/" + identifiant +"_graphe.png";
46        }
47       
48        public void getGraphe(OutputStream out, List<Valeur> liste_valeur) 
49    throws IOException { 
50   
51   // CategoryDataset dataset = new DefaultCategoryDataset();
52    TimeSeries time = new TimeSeries("", Day.class);
53   
54    for (Valeur valeur : liste_valeur) {
55       
56        LoggerPerso.log(ServiceGraphe.class, LoggerPerso.DEBUG, "______________________________________________valeur graphe string "+valeur.getValeur()+" double "+ Double.parseDouble(valeur.getValeur()));
57               
58       
59        time.add(new Day(Integer.parseInt(valeur.getNom().substring(6, 8)), 
60                                                 Integer.parseInt(valeur.getNom().substring(4, 6)), 
61                                                 Integer.parseInt(valeur.getNom().substring(0, 4))), 
62                                 Double.parseDouble(valeur.getValeur()));
63        }
64   
65  /*time.add(new Day(1, 1, 2000), 10);
66   time.add(new Day(2, 1, 2000), 10);
67   time.add(new Day(3, 1, 2000), 10);
68   time.add(new Day(4, 1, 2000), 10);
69   time.add(new Day(5, 1, 2000), 10);
70   time.add(new Day(10, 1, 2000), 100);
71   time.add(new Day(11, 1, 2000), 100);
72   time.add(new Day(12, 1, 2000), 100);
73   time.add(new Day(13, 1, 2000), 100);
74   time.add(new Day(14, 1, 2000), 100);
75   time.add(new Day(15, 1, 2000), 100);*/
76   
77   
78   XYDataset dataset = new TimeSeriesCollection(time);
79   //dataset.setDomainIsPointsInTime(true);
80    JFreeChart barChart = ChartFactory.createTimeSeriesChart("", "", 
81      "", dataset, false, true, false); 
82    XYPlot plot = barChart.getXYPlot();
83    DateAxis axis = (DateAxis) plot.getDomainAxis();
84    axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd"));
85    plot.setRenderer(new XYErrorRenderer());
86    plot.getRenderer().setSeriesPaint(0, Color.blue);
87   
88    /*plot.setRenderer(new XYBarRenderer());
89    svgTest(barChart, "XYBarRenderer");
90    plot.setRenderer(new XYStepRenderer());
91    svgTest(barChart, "XYStepRenderer");
92    plot.setRenderer(new ClusteredXYBarRenderer());
93    svgTest(barChart, "ClusteredXYBarRenderer");
94    plot.setRenderer(new CyclicXYItemRenderer());
95        svgTest(barChart, "CyclicXYItemRenderer");
96    plot.setRenderer(new DefaultXYItemRenderer());
97        svgTest(barChart, "DefaultXYItemRenderer");
98    plot.setRenderer(new DeviationRenderer());
99        svgTest(barChart, "DeviationRenderer");
100    plot.setRenderer(new HighLowRenderer());
101        svgTest(barChart, "HighLowRenderer");
102    plot.setRenderer(new StandardXYItemRenderer());
103        svgTest(barChart, "StandardXYItemRenderer");
104    plot.setRenderer(new VectorRenderer());
105        svgTest(barChart, "VectorRenderer");
106    plot.setRenderer(new XYAreaRenderer());
107        svgTest(barChart, "XYAreaRenderer");
108    plot.setRenderer(new XYAreaRenderer2());
109        svgTest(barChart, "XYAreaRenderer2");
110    plot.setRenderer(new XYBarRenderer());
111        svgTest(barChart, "XYBarRenderer");
112    plot.setRenderer(new XYBlockRenderer());
113        svgTest(barChart, "XYBlockRenderer");
114    plot.setRenderer(new XYBubbleRenderer());
115    svgTest(barChart, "XYBubbleRenderer");
116    plot.setRenderer(new XYDifferenceRenderer());
117        svgTest(barChart, "XYDifferenceRenderer");
118    plot.setRenderer(new XYDotRenderer());
119        svgTest(barChart, "XYDotRenderer");
120    plot.setRenderer(new XYErrorRenderer());
121        svgTest(barChart, "XYErrorRenderer");
122    plot.setRenderer(new XYLine3DRenderer());
123        svgTest(barChart, "XYLine3DRenderer");
124    plot.setRenderer(new XYLineAndShapeRenderer());
125        svgTest(barChart, "XYLineAndShapeRenderer");
126    plot.setRenderer(new XYStepAreaRenderer());
127        svgTest(barChart, "XYStepAreaRenderer");
128    plot.setRenderer(new XYStepRenderer());
129        svgTest(barChart, "XYStepRenderer");
130    plot.setRenderer(new YIntervalRenderer());
131    svgTest(barChart, "YIntervalRenderer");*/
132   
133   
134    ChartUtilities.writeChartAsPNG(out, barChart, 720, 360);
135       
136       
137        }
138       
139        /*private void svgTest(JFreeChart graphe, String type) {
140                File fichier = new File("/tmp/" + type + ".png");
141                OutputStream out = null;
142                try {
143                        out = new FileOutputStream(fichier);
144                        ChartUtilities.writeChartAsPNG(out, graphe, 720, 360);
145                        out.close();
146                } catch (FileNotFoundException e) {
147                        // TODO Auto-generated catch block
148                        e.printStackTrace();
149                } catch (IOException e) {
150                        // TODO Auto-generated catch block
151                        e.printStackTrace();
152                }
153        }*/
154}
Note: See TracBrowser for help on using the repository browser.