Example usage for org.jfree.data.time RegularTimePeriod createInstance

List of usage examples for org.jfree.data.time RegularTimePeriod createInstance

Introduction

In this page you can find the example usage for org.jfree.data.time RegularTimePeriod createInstance.

Prototype

public static RegularTimePeriod createInstance(Class c, Date millisecond, TimeZone zone) 

Source Link

Document

Creates a time period that includes the specified millisecond, assuming the given time zone.

Usage

From source file:com.bdb.weather.display.RainPlot.java

/**
 * Load the rain data./*  www .ja v a  2 s.c o  m*/
 * 
 * @param list The list of historical records for the rainfall graph.
 */
public void setRainData(List<RainEntry> list) {
    if (list.size() == rainSeries.getItemCount()) {
        RegularTimePeriod n0 = RegularTimePeriod.createInstance(Minute.class,
                TimeUtils.localDateTimeToDate(list.get(0).time), TimeZone.getDefault());
        RegularTimePeriod n1 = RegularTimePeriod.createInstance(Minute.class,
                TimeUtils.localDateTimeToDate(list.get(list.size() - 1).time), TimeZone.getDefault());

        RegularTimePeriod e0 = rainSeries.getDataItem(0).getPeriod();
        RegularTimePeriod e1 = rainSeries.getDataItem(rainSeries.getItemCount() - 1).getPeriod();

        //
        // If the first and last times are the same between what's been plotted and what was passed in, the graph is up to date,
        // do nothing.
        //
        if (n0.equals(e0) && n1.equals(e1)) {
            return;
        }
    }

    rainSeries.clear();
    rainRateSeries.clear();

    if (list.size() > 0) {
        rainPlot.clearDomainMarkers();
        //
        // Load the graph
        //
        for (RainEntry r : list) {
            RegularTimePeriod p = RegularTimePeriod.createInstance(Minute.class,
                    TimeUtils.localDateTimeToDate(r.time), TimeZone.getDefault());

            if (r.rainfall != null) {
                TimeSeriesDataItem item = new TimeSeriesDataItem(p, r.rainfall.get());
                rainSeries.add(item);
            }

            if (r.rainfallRate != null) {
                TimeSeriesDataItem item = new TimeSeriesDataItem(p, r.rainfallRate.get());
                rainRateSeries.add(item);
            }
        }

        rainPlot.getRangeAxis().setAutoRange(true);

        addMarker(list.get(list.size() - 1).time);
    }
}

From source file:com.bdb.weather.display.summary.HighLowMedianTempPanel.java

/**
 * Load the data into the graph and the JTable.
 * //from  w w w. j a va2s  . c o  m
 * @param summaryList The list of summary records to be loaded
 * @param lowDataset The graph's dataset that holds the low temperature values
 * @param highDataset The graph's dataset that holds the high temperature values
 * @param meanDataset The graph's dataset that holds the mean temperature values
 * @param tableModel The JTable model to be loaded
 * @param averagesCollection The averages to load into the graph and table
 */
private void loadDataSeries(List<SummaryRecord> summaryList, TimeSeriesCollection lowDataset,
        TimeSeriesCollection highDataset, TimeSeriesCollection meanDataset,
        WeatherAverages averagesCollection) {

    TimeSeries highSeries = new TimeSeries("High");
    TimeSeries lowSeries = new TimeSeries("Low");
    TimeSeries meanSeries = new TimeSeries("Mean");
    TimeSeries averageLowSeries = new TimeSeries("Average Low");
    TimeSeries averageHighSeries = new TimeSeries("Average High");
    TimeSeries averageMeanSeries = new TimeSeries("Average Mean");

    int n = 0;

    for (SummaryRecord r : summaryList) {
        //tableModel.setValueAt(dateFormat.format(r.getDate()), n, DATE_COLUMN);

        RegularTimePeriod p = RegularTimePeriod.createInstance(interval.getFreeChartClass(),
                TimeUtils.localDateTimeToDate(r.getDate().atStartOfDay()), TimeZone.getDefault());

        WeatherAverage averages = averagesCollection.getAverage(r.getDate());
        averageLowSeries.add(p, averages.getLowTemperature().get());
        averageHighSeries.add(p, averages.getHighTemperature().get());
        averageMeanSeries.add(p, averages.getMeanTemperature().get());
        //tableModel.setValueAt(averages.getHighTemperature().toString(), n, AVG_HIGH_TEMP_COLUMN);
        //tableModel.setValueAt(averages.getLowTemperature().toString(), n, AVG_LOW_TEMP_COLUMN);
        //tableModel.setValueAt(averages.getMeanTemperature().toString(), n, AVG_MEAN_TEMP_COLUMN);

        Temperature t = supporter.retrieveHighOutdoorTemperature(r);

        if (t != null) {
            highSeries.add(p, t.get());
            //tableModel.setValueAt(t.toString(), n, HIGH_TEMP_COLUMN);
        }

        t = supporter.retrieveLowOutdoorTemperature(r);

        if (t != null) {
            lowSeries.add(p, t.get());
            //tableModel.setValueAt(t.toString(), n, LOW_TEMP_COLUMN);
        }

        t = supporter.retrieveAvgOutdoorTemperature(r);

        if (t != null) {
            meanSeries.add(p, t.get());
            //tableModel.setValueAt(t.toString(), n, MEDIAN_TEMP_COLUMN);
        }

        n++;
    }

    highDataset.addSeries(highSeries);
    highDataset.addSeries(averageHighSeries);

    lowDataset.addSeries(lowSeries);
    lowDataset.addSeries(averageLowSeries);

    meanDataset.addSeries(meanSeries);
    meanDataset.addSeries(averageMeanSeries);

    diffRenderer.setSeriesPaint(ACTUAL_SERIES, Color.RED);
    diffRenderer.setSeriesPaint(AVERAGE_SERIES, Color.RED.darker());

    diffRenderer.setSeriesPaint(ACTUAL_SERIES, Color.BLUE);
    diffRenderer.setSeriesPaint(AVERAGE_SERIES, Color.BLUE.darker());

    diffRenderer.setSeriesPaint(ACTUAL_SERIES, Color.GREEN);
    diffRenderer.setSeriesPaint(AVERAGE_SERIES, Color.GREEN.darker());
}

From source file:com.jaxzin.iraf.forecast.swing.JForecaster.java

@SuppressWarnings({ "MethodWithMultipleLoops" })
protected XYDataset createDataset() {
    final TimeSeriesCollection tsc = new TimeSeriesCollection();

    //        long start = System.currentTimeMillis();
    Forecast forecastData = null;//from  www  .  j a v  a 2 s  . c  o  m
    try {
        //            System.out.println("Generating dataset; initial salary is <"+domain.getInitialSalary()+">");
        forecastData = forecaster.forecast(domain);
    } catch (ForecastException e) {
        e.printStackTrace();
    }

    int count = 1;
    assert forecastData != null;
    final int total = forecastData.getForecastData().size() + 1;
    //noinspection ForLoopThatDoesntUseLoopVariable
    for (Iterator i = forecastData.getForecastData().iterator(); i.hasNext(); count++) {
        final List<Money> universeData = (List<Money>) i.next();
        //noinspection ObjectAllocationInLoop,UnqualifiedStaticUsage
        final TimeSeries ts = new TimeSeries(new StringBuilder()
                .append(String.valueOf((count * TOTAL_PERCENTILES) / total)).append("th").toString(),
                Year.class);
        for (Money money : universeData) {
            if (ts.getItemCount() == 0) {
                //noinspection ObjectAllocationInLoop
                ts.add(RegularTimePeriod.createInstance(Year.class, new Date(), TimeZone.getDefault()),
                        money.doubleValue());
            } else {
                ts.add(ts.getNextTimePeriod(), money.doubleValue());
            }
        }

        tsc.addSeries(ts);

    }
    //        System.out.println(System.currentTimeMillis()-start);

    return tsc;
}

From source file:com.bdb.weather.display.summary.TemperatureDeviationPlotPanel.java

public void loadData(List<SummaryRecord> list, WeatherAverages averagesCollection) {
    TimeSeriesCollection lowCollection = new TimeSeriesCollection();
    TimeSeriesCollection meanCollection = new TimeSeriesCollection();
    TimeSeriesCollection highCollection = new TimeSeriesCollection();
    TimeSeries highSeries = new TimeSeries(HIGH_SERIES_NAME);
    TimeSeries meanSeries = new TimeSeries(MEAN_SERIES_NAME);
    TimeSeries lowSeries = new TimeSeries(LOW_SERIES_NAME);

    int n = 0;/*w ww. j a  va 2s .c o  m*/

    //tableModel.setRowCount(list.size());

    DateTimeFormatter dateFormat = interval.getFormat();

    for (SummaryRecord record : list) {
        WeatherAverage averages = averagesCollection.getAverage(record.getDate());

        String dateString = dateFormat.format(record.getDate());
        //tableModel.setValueAt(dateString, n, DATE_COLUMN);

        Temperature deviation = supporter.retrieveLowOutdoorTemperature(record)
                .subtract(averages.getLowTemperature());
        RegularTimePeriod period = RegularTimePeriod.createInstance(interval.getFreeChartClass(),
                TimeUtils.localDateTimeToDate(record.getDate().atStartOfDay()), TimeZone.getDefault());
        TimeSeriesDataItem item = new TimeSeriesDataItem(period, deviation.get());
        lowSeries.add(item);
        //tableModel.setValueAt(deviation, n, LOW_COLUMN);

        deviation = supporter.retrieveAvgOutdoorTemperature(record).subtract(averages.getMeanTemperature());
        item = new TimeSeriesDataItem(period, deviation.get());
        meanSeries.add(item);
        //tableModel.setValueAt(deviation, n, MEAN_COLUMN);

        deviation = supporter.retrieveHighOutdoorTemperature(record).subtract(averages.getHighTemperature());
        item = new TimeSeriesDataItem(period, deviation.get());
        highSeries.add(item);
        //tableModel.setValueAt(deviation, n, HIGH_COLUMN);

        n++;
    }

    lowCollection.addSeries(lowSeries);
    meanCollection.addSeries(meanSeries);
    highCollection.addSeries(highSeries);

    deviationPlot.setDataset(LOW_SERIES_INDEX, lowCollection);
    deviationPlot.setDataset(MEAN_SERIES_INDEX, meanCollection);
    deviationPlot.setDataset(HIGH_SERIES_INDEX, highCollection);

    deviationPlot.setRenderer(LOW_SERIES_INDEX, lowRenderer);
    deviationPlot.setRenderer(MEAN_SERIES_INDEX, meanRenderer);
    deviationPlot.setRenderer(HIGH_SERIES_INDEX, highRenderer);
}

From source file:com.bdb.weather.display.day.DayXYPlotPane.java

/**
 * Load the data into the JFreeChart time series and into the Table Model
 * /*from  www.  j  ava2s  . co  m*/
 * @param records The list of historical records
 */
protected void loadDataSeries(List<HistoricalRecord> records) {
    entries.stream().forEach((entry) -> {
        entry.timeSeries.clear();
    });

    ObservableList<HistoricalRecord> dataModel = FXCollections.observableList(records);
    dataTable.setItems(dataModel);

    getPlot().getRangeAxis().setAutoRange(true);

    records.stream().forEach((r) -> {
        RegularTimePeriod p = RegularTimePeriod.createInstance(Minute.class,
                TimeUtils.localDateTimeToDate(r.getTime()), TimeZone.getDefault());

        entries.stream().forEach((entry) -> {
            Measurement m = entry.seriesInfo.getValue(r);
            if (m != null) {
                entry.timeSeries.add(p, m.get());
            }
        });
    });

    displaySeries(datasetLeft, datasetRight);
}

From source file:edu.mit.fss.examples.member.gui.CommSubsystemPanel.java

@Override
public void timeAdvanced(final SimulationTimeEvent event) {
    // make a copy of state updates to prevent late-running threads from
    // posting out-of-date information
    final Map<Transmitter, Boolean> canReceiveMap = new HashMap<Transmitter, Boolean>();

    // synchronize on map for thread safety
    synchronized (connectSeriesMap) {
        for (Transmitter transmitter : connectSeriesMap.keySet()) {
            canReceiveMap.put(transmitter, subsystem.getReceiver().canReceiveFrom(transmitter));
        }/*from   w ww. j  a v  a2  s.  c o m*/
    }

    // update in event dispatch thread for thread safety
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                for (Transmitter transmitter : canReceiveMap.keySet()) {
                    TimeSeries series = connectSeriesMap.get(transmitter);
                    logger.trace("Adding/updating series " + series.getKey() + ".");
                    series.addOrUpdate(RegularTimePeriod.createInstance(Minute.class, new Date(event.getTime()),
                            TimeZone.getTimeZone("UTC")), canReceiveMap.get(transmitter) ? 1 : 0);
                }
            }
        });
    } catch (InvocationTargetException | InterruptedException e) {
        logger.error(e);
    }
}

From source file:org.pentaho.platform.uifoundation.chart.TimeTableXYDatasetChartDefinition.java

private void setDataByColumn(final IPentahoResultSet data) {
    // TODO Make this routine MDX friendly
    if (data == null) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_NO_DATA_AVAILABLE"); //$NON-NLS-1$
        return; // No data so we've got nothing to set
        // TODO come up with some sort of error strategy here.
    }// w  w w. j a v a  2 s .c o m
    String seriesName = ""; //$NON-NLS-1$
    Class timePeriodClass = TimeTableXYDatasetChartDefinition.getTimePeriodClass(getDomainPeriodType());
    Object[] rowData = data.next();
    while (rowData != null) {
        seriesName = (String) rowData[0];
        Date keyDate = getValidDate(rowData[1]);
        RegularTimePeriod regularTimePeriod = RegularTimePeriod.createInstance(timePeriodClass, keyDate,
                RegularTimePeriod.DEFAULT_TIME_ZONE);
        add(regularTimePeriod, ((Number) rowData[2]).doubleValue(), seriesName);
        rowData = data.next();
    }
    if ((data.getRowCount() > 0) && (this.getSeriesCount() <= 0)) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_INCORRECT_DATA_FORMAT"); //$NON-NLS-1$
    }

}

From source file:org.pentaho.platform.uifoundation.chart.TimeSeriesCollectionChartDefinition.java

private void setDataByColumn(final IPentahoResultSet data) {
    // TODO Make this routine MDX friendly
    if (data == null) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_NO_DATA_AVAILABLE"); //$NON-NLS-1$
        return; // No data so we've got nothing to set
        // TODO come up with some sort of error strategy here.
    }/*from w  w  w  .ja v a  2s  .  co  m*/
    boolean firstPass = true;
    String lastSeries = ""; //$NON-NLS-1$
    String seriesName = ""; //$NON-NLS-1$
    Class timePeriodClass = TimeSeriesCollectionChartDefinition.getTimePeriodClass(getDomainPeriodType());
    Object[] rowData = data.next();
    TimeSeries wrkSeries = null;
    while (rowData != null) {
        seriesName = (String) rowData[0];
        if (firstPass || !seriesName.equalsIgnoreCase(lastSeries)) {
            if (!firstPass) {
                addSeries(wrkSeries);
            }
            wrkSeries = new TimeSeries(seriesName, timePeriodClass);
            lastSeries = seriesName;
            firstPass = false;
        }
        Date keyDate = getValidDate(rowData[1]);
        RegularTimePeriod regularTimePeriod = RegularTimePeriod.createInstance(timePeriodClass, keyDate,
                RegularTimePeriod.DEFAULT_TIME_ZONE);
        TimeSeriesDataItem timeSeriesDataItem = new TimeSeriesDataItem(regularTimePeriod,
                ((Number) rowData[2]).doubleValue());
        if (wrkSeries != null) {
            wrkSeries.add(timeSeriesDataItem);
        }
        rowData = data.next();
    }
    if (!firstPass) {
        addSeries(wrkSeries);
    }
    if ((data.getRowCount() > 0) && (this.getSeriesCount() <= 0)) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_INCORRECT_DATA_FORMAT"); //$NON-NLS-1$
    }

}

From source file:org.pentaho.platform.uifoundation.chart.TimeTableXYDatasetChartDefinition.java

private void setDataByRow(final IPentahoResultSet data) {
    // TODO Make this routine MDX friendly
    if (data == null) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_NO_DATA_AVAILABLE"); //$NON-NLS-1$
        return; // No data so we've got nothing to set
        // TODO come up with some sort of error strategy here.
    }/*from  w w  w .jav  a  2s.com*/
    Class timePeriodClass = TimeTableXYDatasetChartDefinition.getTimePeriodClass(getDomainPeriodType());
    Object[] rowData = data.next();
    while (rowData != null) {
        String seriesName = (String) rowData[0];
        for (int column = 1; column < rowData.length - 1; column = column + 2) {
            Date keyDate = getValidDate(rowData[column]);
            RegularTimePeriod regularTimePeriod = RegularTimePeriod.createInstance(timePeriodClass, keyDate,
                    RegularTimePeriod.DEFAULT_TIME_ZONE);

            add(regularTimePeriod, ((Number) rowData[column + 1]).doubleValue(), seriesName);
        }
        rowData = data.next();
    }

    if ((data.getRowCount() > 0) && (this.getSeriesCount() <= 0)) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_INCORRECT_DATA_FORMAT"); //$NON-NLS-1$
    }

}

From source file:org.pentaho.platform.uifoundation.chart.TimeSeriesCollectionChartDefinition.java

private void setDataByRow(final IPentahoResultSet data) {
    // TODO Make this routine MDX friendly
    if (data == null) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_NO_DATA_AVAILABLE"); //$NON-NLS-1$
        return; // No data so we've got nothing to set
        // TODO come up with some sort of error strategy here.
    }// w  w  w . jav a2 s  . c  o  m
    Class timePeriodClass = TimeSeriesCollectionChartDefinition.getTimePeriodClass(getDomainPeriodType());
    Object[] rowData = data.next();
    while (rowData != null) {
        String seriesName = (String) rowData[0];
        TimeSeries wrkSeries = new TimeSeries(seriesName, timePeriodClass);
        for (int column = 1; column < rowData.length - 1; column = column + 2) {
            Date keyDate = getValidDate(rowData[column]);
            TimeSeriesDataItem timeSeriesDataItem = new TimeSeriesDataItem(RegularTimePeriod
                    .createInstance(timePeriodClass, keyDate, RegularTimePeriod.DEFAULT_TIME_ZONE),
                    ((Number) rowData[column + 1]).doubleValue());
            wrkSeries.add(timeSeriesDataItem);
        }
        addSeries(wrkSeries);
        rowData = data.next();
    }

    if ((data.getRowCount() > 0) && (this.getSeriesCount() <= 0)) {
        noDataMessage = Messages.getInstance().getString("CHART.USER_INCORRECT_DATA_FORMAT"); //$NON-NLS-1$
    }

}