List of usage examples for org.jfree.data.time RegularTimePeriod createInstance
public static RegularTimePeriod createInstance(Class c, Date millisecond, TimeZone zone)
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$ } }