Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.69 KB | None | 0 0
  1. package swt6.osgi.weather;
  2.  
  3.  
  4. import java.util.Calendar;
  5. import java.util.GregorianCalendar;
  6.  
  7. import javax.swing.JComponent;
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15. import org.jfree.chart.ChartFactory;
  16. import org.jfree.chart.ChartPanel;
  17. import org.jfree.chart.JFreeChart;
  18. import org.jfree.chart.plot.PlotOrientation;
  19. import org.jfree.data.time.Day;
  20. import org.jfree.data.time.Minute;
  21. import org.jfree.data.time.Second;
  22. import org.jfree.data.time.TimeSeries;
  23. import org.jfree.data.time.TimeSeriesCollection;
  24. import org.jfree.data.xy.XYDataset;
  25. import org.jfree.data.xy.XYSeries;
  26. import org.jfree.data.xy.XYSeriesCollection;
  27.  
  28. public class WeatherService extends JComponent {
  29.  
  30.     private static final long serialVersionUID = 5267268225874746939L;
  31.  
  32.     private JFreeChart jfreeChart;
  33.  
  34.     private XYSeries temperatureSeries = new XYSeries("Temperatur");
  35.  
  36.     private XYSeries humiditySeries = new XYSeries("Humidity");
  37.  
  38.     private XYSeries airPressureSeries = new XYSeries("Air Pressure");
  39.  
  40.     private XYDataset dataset;
  41.    
  42.     private TimeSeriesCollection timerSeries = new TimeSeriesCollection();
  43.    
  44.    
  45.     private TimeSeries temperatureTimeSeries = new TimeSeries("Temperature", Second.class);
  46.     private TimeSeries humidityTimeSeries = new TimeSeries("Humidity", Second.class);
  47.     private TimeSeries airPressureTimeSeries = new TimeSeries("Air Pressure", Second.class);
  48.    
  49.  
  50.     public void progress(Weather weather) {
  51.         //createDataset(weather);
  52.         createTimeDataSeries(weather);
  53.     }
  54.    
  55.     public WeatherService() {
  56.         timerSeries.addSeries(temperatureTimeSeries);
  57.         timerSeries.addSeries(humidityTimeSeries);
  58.         timerSeries.addSeries(airPressureTimeSeries);
  59.     }
  60.  
  61.     // private XYSeriesCollection createJFreeChart() {
  62.     // try {
  63.     // XYSeries newTemperatureSeries = getTemperatureSeries();
  64.     // newTemperatureSeries.add(getTime(), getWeather().getTemperature());
  65.     // setTemperatureSeries(newTemperatureSeries);
  66.     //
  67.     // XYSeries newHumiditySeries = getHumiditySeries();
  68.     // newHumiditySeries.add(getTime(), getWeather().getHumidity());
  69.     // setHumiditySeries(newHumiditySeries);
  70.     //
  71.     // XYSeries newAirPressureSeries = getAirPressureSeries();
  72.     // newAirPressureSeries.add(getTime(), getWeather().getAirPressure());
  73.     // setAirPressureSeries(newAirPressureSeries);
  74.     //
  75.     // XYSeriesCollection weahterCollection = new XYSeriesCollection();
  76.     // weahterCollection.addSeries(temperatureSeries);
  77.     // weahterCollection.addSeries(humiditySeries);
  78.     // weahterCollection.addSeries(airPressureSeries);
  79.     // return weahterCollection;
  80.     // } catch (NullPointerException np) {
  81.     // np.printStackTrace();
  82.     // return new XYSeriesCollection();
  83.     //
  84.     // }
  85.     // }
  86.  
  87.     private void createDataset(Weather weather) {
  88.         Calendar calendar = GregorianCalendar.getInstance(); // creates a new
  89.         // calendar
  90.         // instance
  91.         calendar.setTime(weather.getDate()); // assigns calendar to given
  92.         // date
  93.         long time = calendar.get(Calendar.SECOND);
  94.  
  95.         temperatureSeries.add(time, weather.getTemperature());
  96.         humiditySeries.add(time, weather.getHumidity());
  97.         airPressureSeries.add(time, weather.getAirPressure());
  98.  
  99.         XYSeriesCollection weahterCollection = new XYSeriesCollection();
  100.         weahterCollection.addSeries(temperatureSeries);
  101.         weahterCollection.addSeries(humiditySeries);
  102.         weahterCollection.addSeries(airPressureSeries);
  103.         dataset = weahterCollection;
  104.  
  105.     }
  106.    
  107.    
  108.     private void createTimeDataSeries(Weather weather) {
  109.         temperatureTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getTemperature());
  110.         humidityTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getHumidity());
  111.         airPressureTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getAirPressure());
  112.        
  113.        
  114.         dataset = timerSeries;
  115.     }
  116.  
  117.     public JFreeChart createChart() {
  118.  
  119.         // create the chart...
  120.         final JFreeChart chart = ChartFactory.createXYLineChart(
  121.                 "Weather Station", // chart title
  122.                 "Time", // x axis label
  123.                 "Weather", // y axis label
  124.                 dataset, // data
  125.                 PlotOrientation.VERTICAL, true, // include legend
  126.                 true, // tooltips
  127.                 false // urls
  128.                 );
  129.  
  130.         return chart;
  131.     }
  132.  
  133.     public ChartPanel createJPanelFromChart() {
  134.         ChartPanel panel = new ChartPanel(createChart());
  135.         return panel;
  136.     }
  137.  
  138.     public XYSeries getTemperatureSeries() {
  139.         return temperatureSeries;
  140.     }
  141.  
  142.     public void setTemperatureSeries(XYSeries temperatureSeries) {
  143.         this.temperatureSeries = temperatureSeries;
  144.  
  145.     }
  146.  
  147.     public XYSeries getHumiditySeries() {
  148.         return humiditySeries;
  149.     }
  150.  
  151.     public void setHumiditySeries(XYSeries humiditySeries) {
  152.         this.humiditySeries = humiditySeries;
  153.  
  154.     }
  155.  
  156.     public XYSeries getAirPressureSeries() {
  157.         return airPressureSeries;
  158.     }
  159.  
  160.     public void setAirPressureSeries(XYSeries airPressureSeries) {
  161.         this.airPressureSeries = airPressureSeries;
  162.  
  163.     }
  164.  
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement