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

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

Introduction

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

Prototype

@Override
public Date getEnd() 

Source Link

Document

Returns the date/time that marks the end of the time period.

Usage

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());
}