List of usage examples for org.jfree.data.time RegularTimePeriod getEnd
@Override
public Date getEnd()
From source file:org.tolven.analysis.bean.PercentTimeSeriesBean.java
@Override public JFreeChart getChart(MenuStructure snapshotListMS, MenuPath snapshotPH, Long chartRange, Class<?> intervalUnitClass, String chartDataTitle, String chartTargetTitle, AccountUser accountUser, Date now) {//w w w . j av a2 s .c o m MenuQueryControl ctrl = new MenuQueryControl(); ctrl.setMenuStructure(snapshotListMS); ctrl.setAccountUser(accountUser); ctrl.setNow(now); ctrl.setOriginalTargetPath(snapshotPH); ctrl.setRequestedPath(snapshotPH); ctrl.setSortOrder("Date"); ctrl.setSortDirection("DESC"); ctrl.setLimit(1); List<MenuData> singleItemList = menuBean.findMenuData(ctrl); Date lastSnapshotDate = null; if (singleItemList.isEmpty()) { lastSnapshotDate = now; } else { MenuData snapshotListItem = singleItemList.get(0); MenuData snapshot = snapshotListItem.getReference(); lastSnapshotDate = new Date(snapshot.getDate01().getTime()); } RegularTimePeriod endTimePeriod = RegularTimePeriod.createInstance(intervalUnitClass, lastSnapshotDate, TimeZone.getDefault()); long milliseconds = Math.max(1, chartRange - 1) * (endTimePeriod.getEnd().getTime() - endTimePeriod.getStart().getTime()); Date fDate = new Date(endTimePeriod.getEnd().getTime() - milliseconds); RegularTimePeriod startTimePeriod = RegularTimePeriod.createInstance(intervalUnitClass, fDate, TimeZone.getDefault()); Date fromDate = startTimePeriod.getStart(); Date toDate = endTimePeriod.getEnd(); ctrl.setSortDirection("ASC"); ctrl.setLimit(0); ctrl.setFromDate(fromDate); ctrl.setToDate(toDate); List<MenuData> snapshotListItems = menuBean.findMenuData(ctrl); List<MenuData> snapshots = new ArrayList<MenuData>(); for (MenuData snapshotListItem : snapshotListItems) { snapshots.add(snapshotListItem.getReference()); } return getChart(chartDataTitle, chartTargetTitle, snapshots, fromDate, toDate, intervalUnitClass); }
From source file:sdmx.net.service.nomis.NOMISRESTServiceRegistry.java
@Override public void query(Query q, ParseDataCallbackHandler handler) { if (SdmxIO.isDumpQuery()) { }/*from ww w . jav a 2s . c om*/ String flowid = q.getFlowRef(); String agency = q.getProviderRef(); int geogIndex = flowid.lastIndexOf("_"); ; String geog = flowid.substring(geogIndex + 1, flowid.length()); String geography_string = "&geography=" + geog; if ("NOGEOG".equals(geog)) { geography_string = ""; } String id = flowid.substring(0, geogIndex); StringBuilder sb = new StringBuilder(); for (int i = 0; i < q.size(); i++) { QueryDimension dim = q.getQueryDimension(i); boolean addedParam = false; String concept = dim.getConcept(); List<String> params = dim.getValues(); if (params.size() > 0) { addedParam = true; sb.append(concept + "="); for (int j = 0; j < params.size(); j++) { sb.append(params.get(j)); if (j < params.size() - 1) { sb.append(","); } } } if (addedParam && i < q.size() - 1) { sb.append("&"); } addedParam = false; } StringBuilder times = new StringBuilder(); try { StructureType st = retrieve3(getServiceURL() + "/v01/dataset/" + id + "/time/def.sdmx.xml"); CodelistType timesCL = st.getStructures().getCodelists().getCodelists().get(0); Date startTime = q.getQueryTime().getStartTime(); Date endTime = q.getQueryTime().getEndTime(); boolean comma = true; for (int i = 0; i < timesCL.size(); i++) { RegularTimePeriod rtp = TimeUtil.parseTime("", timesCL.getCode(i).getId().toString()); if ((rtp.getStart().equals(startTime) || rtp.getStart().after(startTime)) && (rtp.getEnd().before(endTime) || rtp.getEnd().equals(endTime))) { if (!comma) { times.append(","); } times.append(timesCL.getCode(i).getId().toString()); comma = false; } } } catch (IOException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } catch (ParseException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } try { queryStream(getServiceURL() + "/v01/dataset/" + id + ".compact.sdmx.xml?" + q + "&time=" + times.toString() + /* We don't want the geography string at all, because its name clashes with a dimension name this causes the nomis service to send each geography code in the message... we will just specify the codes we want... and not specify the geography type. */ //geography_string "&" + options, handler); } catch (IOException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } catch (ParseException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:sdmx.net.service.nomis.NOMISRESTServiceRegistry.java
@Override public DataMessage query(Query q) { if (SdmxIO.isDumpQuery()) { }/*from www . ja v a 2 s. c o m*/ String flowid = q.getFlowRef(); String agency = q.getProviderRef(); int geogIndex = flowid.lastIndexOf("_"); ; String geog = flowid.substring(geogIndex + 1, flowid.length()); String geography_string = "&geography=" + geog; if ("NOGEOG".equals(geog)) { geography_string = ""; } String id = flowid.substring(0, geogIndex); StringBuilder sb = new StringBuilder(); for (int i = 0; i < q.size(); i++) { QueryDimension dim = q.getQueryDimension(i); boolean addedParam = false; String concept = dim.getConcept(); List<String> params = dim.getValues(); if (params.size() > 0) { addedParam = true; sb.append(concept + "="); for (int j = 0; j < params.size(); j++) { sb.append(params.get(j)); if (j < params.size() - 1) { sb.append(","); } } } if (addedParam && i < q.size() - 1) { sb.append("&"); } addedParam = false; } StringBuilder times = new StringBuilder(); try { StructureType st = retrieve3(getServiceURL() + "/v01/dataset/" + id + "/time/def.sdmx.xml"); CodelistType timesCL = st.getStructures().getCodelists().getCodelists().get(0); Date startTime = q.getQueryTime().getStartTime(); Date endTime = q.getQueryTime().getEndTime(); boolean comma = true; for (int i = 0; i < timesCL.size(); i++) { RegularTimePeriod rtp = TimeUtil.parseTime("", timesCL.getCode(i).getId().toString()); if ((rtp.getStart().equals(startTime) || rtp.getStart().after(startTime)) && (rtp.getEnd().before(endTime) || rtp.getEnd().equals(endTime))) { if (!comma) { times.append(","); } times.append(timesCL.getCode(i).getId().toString()); comma = false; } } } catch (IOException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } catch (ParseException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } DataMessage msg = null; try { msg = queryBatch(getServiceURL() + "/v01/dataset/" + id + ".compact.sdmx.xml?" + q + "&time=" + times.toString() + /* We don't want the geography string at all, because its name clashes with a dimension name this causes the nomis service to send each geography code in the message... we will just specify the codes we want... and not specify the geography type. */ //geography_string "&" + options); } catch (IOException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } catch (ParseException ex) { Logger.getLogger(NOMISRESTServiceRegistry.class.getName()).log(Level.SEVERE, null, ex); } return msg; }
From source file:com.peterbochs.instrument.InstrumentPanel.java
private void runTimer() { if (interruptTimer != null) { interruptTimer.cancel();/* w w w.j a va 2 s . c om*/ } interruptTimer = new Timer(); interruptTimer.schedule(new TimerTask() { Hashtable<Long, Integer> oldInterruptRecords; public void run() { try { synchronized (allSeries) { ArrayList<Long> list = Collections.list(InterruptSocketServer.interruptRecords.keys()); Date d = new Date(); // int noOfFrame = getTimeframe() / getSpeed(); oldInterruptRecords = (Hashtable<Long, Integer>) InterruptSocketServer.interruptRecords .clone(); ((InterruptTableModel) jInterruptTable.getModel()).fireTableDataChanged(); for (int x = 0; x < list.size(); x++) { long interuptNoL = list.get(x); int interruptNo = (int) interuptNoL; if (allSeries.get(interruptNo) != null) { TimeSeries series = allSeries.get(interruptNo); List<TimeSeriesDataItem> items = series.getItems(); for (int z = items.size() - 1; z >= 0; z--) { RegularTimePeriod pd = items.get(z).getPeriod(); Calendar cal1 = Calendar.getInstance(); cal1.add(Calendar.MILLISECOND, -1 * getTimeframe()); Calendar cal2 = Calendar.getInstance(); cal2.setTime(pd.getEnd()); if (cal1.after(cal2)) { series.delete(pd); } } series.add(new Millisecond(d), InterruptSocketServer.interruptRecords.get(interuptNoL) - oldInterruptRecords.get(interuptNoL)); // InterruptSocketServer.interruptRecords.put(interuptNoL, 0); } else { TimeSeries newSeries = new TimeSeries("Int 0x" + Integer.toHexString(interruptNo)); interruptDataset.addSeries(newSeries); allSeries.put(interruptNo, newSeries); } } interruptChart.fireChartChanged(); } } catch (Exception ex) { ex.printStackTrace(); } } }, 0, getSpeed()); }