Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package swt6.osgi.weather;
- import java.util.Calendar;
- import java.util.GregorianCalendar;
- import javax.swing.JComponent;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartPanel;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.data.time.Day;
- import org.jfree.data.time.Minute;
- import org.jfree.data.time.Second;
- import org.jfree.data.time.TimeSeries;
- import org.jfree.data.time.TimeSeriesCollection;
- import org.jfree.data.xy.XYDataset;
- import org.jfree.data.xy.XYSeries;
- import org.jfree.data.xy.XYSeriesCollection;
- public class WeatherService extends JComponent {
- private static final long serialVersionUID = 5267268225874746939L;
- private JFreeChart jfreeChart;
- private XYSeries temperatureSeries = new XYSeries("Temperatur");
- private XYSeries humiditySeries = new XYSeries("Humidity");
- private XYSeries airPressureSeries = new XYSeries("Air Pressure");
- private XYDataset dataset;
- private TimeSeriesCollection timerSeries = new TimeSeriesCollection();
- private TimeSeries temperatureTimeSeries = new TimeSeries("Temperature", Second.class);
- private TimeSeries humidityTimeSeries = new TimeSeries("Humidity", Second.class);
- private TimeSeries airPressureTimeSeries = new TimeSeries("Air Pressure", Second.class);
- public void progress(Weather weather) {
- //createDataset(weather);
- createTimeDataSeries(weather);
- }
- public WeatherService() {
- timerSeries.addSeries(temperatureTimeSeries);
- timerSeries.addSeries(humidityTimeSeries);
- timerSeries.addSeries(airPressureTimeSeries);
- }
- // private XYSeriesCollection createJFreeChart() {
- // try {
- // XYSeries newTemperatureSeries = getTemperatureSeries();
- // newTemperatureSeries.add(getTime(), getWeather().getTemperature());
- // setTemperatureSeries(newTemperatureSeries);
- //
- // XYSeries newHumiditySeries = getHumiditySeries();
- // newHumiditySeries.add(getTime(), getWeather().getHumidity());
- // setHumiditySeries(newHumiditySeries);
- //
- // XYSeries newAirPressureSeries = getAirPressureSeries();
- // newAirPressureSeries.add(getTime(), getWeather().getAirPressure());
- // setAirPressureSeries(newAirPressureSeries);
- //
- // XYSeriesCollection weahterCollection = new XYSeriesCollection();
- // weahterCollection.addSeries(temperatureSeries);
- // weahterCollection.addSeries(humiditySeries);
- // weahterCollection.addSeries(airPressureSeries);
- // return weahterCollection;
- // } catch (NullPointerException np) {
- // np.printStackTrace();
- // return new XYSeriesCollection();
- //
- // }
- // }
- private void createDataset(Weather weather) {
- Calendar calendar = GregorianCalendar.getInstance(); // creates a new
- // calendar
- // instance
- calendar.setTime(weather.getDate()); // assigns calendar to given
- // date
- long time = calendar.get(Calendar.SECOND);
- temperatureSeries.add(time, weather.getTemperature());
- humiditySeries.add(time, weather.getHumidity());
- airPressureSeries.add(time, weather.getAirPressure());
- XYSeriesCollection weahterCollection = new XYSeriesCollection();
- weahterCollection.addSeries(temperatureSeries);
- weahterCollection.addSeries(humiditySeries);
- weahterCollection.addSeries(airPressureSeries);
- dataset = weahterCollection;
- }
- private void createTimeDataSeries(Weather weather) {
- temperatureTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getTemperature());
- humidityTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getHumidity());
- airPressureTimeSeries.addOrUpdate(new Second(weather.getDate()), weather.getAirPressure());
- dataset = timerSeries;
- }
- public JFreeChart createChart() {
- // create the chart...
- final JFreeChart chart = ChartFactory.createXYLineChart(
- "Weather Station", // chart title
- "Time", // x axis label
- "Weather", // y axis label
- dataset, // data
- PlotOrientation.VERTICAL, true, // include legend
- true, // tooltips
- false // urls
- );
- return chart;
- }
- public ChartPanel createJPanelFromChart() {
- ChartPanel panel = new ChartPanel(createChart());
- return panel;
- }
- public XYSeries getTemperatureSeries() {
- return temperatureSeries;
- }
- public void setTemperatureSeries(XYSeries temperatureSeries) {
- this.temperatureSeries = temperatureSeries;
- }
- public XYSeries getHumiditySeries() {
- return humiditySeries;
- }
- public void setHumiditySeries(XYSeries humiditySeries) {
- this.humiditySeries = humiditySeries;
- }
- public XYSeries getAirPressureSeries() {
- return airPressureSeries;
- }
- public void setAirPressureSeries(XYSeries airPressureSeries) {
- this.airPressureSeries = airPressureSeries;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement