Example usage for org.joda.time DateTime parse

List of usage examples for org.joda.time DateTime parse

Introduction

In this page you can find the example usage for org.joda.time DateTime parse.

Prototype

public static DateTime parse(String str, DateTimeFormatter formatter) 

Source Link

Document

Parses a DateTime from the specified string using a formatter.

Usage

From source file:io.github.blindio.prospero.core.utils.JodaDateTimeWrapper.java

License:Apache License

public static JodaDateTimeWrapper parseDateString(String dateString) {
    return new JodaDateTimeWrapper(DateTime.parse(dateString, dateTimeFormat).withTimeAtStartOfDay());
}

From source file:io.github.blindio.prospero.core.utils.JodaDateTimeWrapper.java

License:Apache License

public static JodaDateTimeWrapper parseYMDDateString(String ymdDateString) {
    return new JodaDateTimeWrapper(DateTime.parse(ymdDateString, formatYMD).withTimeAtStartOfDay());
}

From source file:io.github.blindio.prospero.core.utils.JodaDateTimeWrapper.java

License:Apache License

public static JodaDateTimeWrapper parseMDYDateString(String mdyDateString) {
    return new JodaDateTimeWrapper(DateTime.parse(mdyDateString, formatMDY).withTimeAtStartOfDay());
}

From source file:io.github.blindio.prospero.core.utils.JodaDateTimeWrapper.java

License:Apache License

public JodaDateTimeWrapper withTimeString(String timeString) {
    DateTime newTime = DateTime.parse(timeString, formatTime);
    return this.withTime(newTime.getHourOfDay(), newTime.getMinuteOfHour());
}

From source file:io.jawg.osmcontributor.rest.mappers.JodaTimeDateTimeDeserializer.java

License:Open Source License

@Override
public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
        throws JsonParseException {
    DateTime dateTime = null;/*from w  w w.j a v a2 s  .c  om*/
    if (!json.isJsonNull()) {
        try {
            dateTime = DateTime.parse(json.getAsString(), ISODateTimeFormat.dateTime());
        } catch (Exception e) {
            Timber.e(e, "Joda-Time DateTime Transform failed.");
            throw new JsonParseException(e);
        }
    }
    return dateTime;
}

From source file:io.terminus.snz.user.service.SupplierInfoChangedServiceImpl.java

@Override
public SupplierUpdatedInfoDto<CompanyDto> getNewBaseCompany(Long userId, Company oldCompany,
        List<CompanyMainBusiness> oldMainBusinesses, List<CompanySupplyPark> oldSupplyParks) {
    SupplierUpdatedInfoDto<CompanyDto> supplierUpdatedInfoDto = new SupplierUpdatedInfoDto<CompanyDto>();
    CompanyDto companyDto = new CompanyDto();
    Map<String, Object> oldValues = Maps.newHashMap();

    boolean baseCompanyInfoChanged = supplierChangedInfoRedisDao.tabInfoChanged(userId,
            ChangedInfoKeys.companyTab());
    if (!baseCompanyInfoChanged) {
        companyDto.setCompany(oldCompany);
        companyDto.setCompanyMainBusinesses(oldMainBusinesses);
        companyDto.setCompanySupplyParks(oldSupplyParks);

        supplierUpdatedInfoDto.setSupplierInfo(companyDto);
        supplierUpdatedInfoDto.setOldValues(oldValues);
        return supplierUpdatedInfoDto;
    }/*from   w w  w.  jav a2 s .  c o  m*/

    Map<String, String> changedInfo = supplierChangedInfoRedisDao.getChangedInfos(userId);
    Company newCompany = new Company();
    BeanMapper.copy(oldCompany, newCompany);

    if (changedInfo.containsKey(ChangedInfoKeys.companyCorporation())) {
        newCompany.setCorporation(changedInfo.get(ChangedInfoKeys.companyCorporation()));
        oldValues.put(ChangedInfoKeys.companyCorporation(), oldCompany.getCorporation());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyInitAgent())) {
        newCompany.setInitAgent(changedInfo.get(ChangedInfoKeys.companyInitAgent()));
        oldValues.put(ChangedInfoKeys.companyInitAgent(), oldCompany.getInitAgent());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyRegCountry())) {
        String regCountry = changedInfo.get(ChangedInfoKeys.companyRegCountry());
        newCompany.setRegCountry("null".equals(regCountry) ? null : Integer.parseInt(regCountry));
        oldValues.put(ChangedInfoKeys.companyRegCountry(), oldCompany.getRegCountry());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyDesc())) {
        newCompany.setDesc(changedInfo.get(ChangedInfoKeys.companyDesc()));
        oldValues.put(ChangedInfoKeys.companyDesc(), oldCompany.getDesc());
    }

    //V?????
    if (!Strings.isNullOrEmpty(oldCompany.getSupplierCode())) {

        if (changedInfo.containsKey(ChangedInfoKeys.companyGroupName())) {
            newCompany.setGroupName(changedInfo.get(ChangedInfoKeys.companyGroupName()));
            oldValues.put(ChangedInfoKeys.companyGroupName(), oldCompany.getGroupName());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyGroupAddr())) {
            newCompany.setGroupAddr(changedInfo.get(ChangedInfoKeys.companyGroupAddr()));
            oldValues.put(ChangedInfoKeys.companyGroupAddr(), oldCompany.getGroupAddr());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyRegCapical())) {
            String regCapital = changedInfo.get(ChangedInfoKeys.companyRegCapical());
            newCompany.setRegCapital("null".equals(regCapital) ? null : Long.parseLong(regCapital));
            oldValues.put(ChangedInfoKeys.companyRegCapical(), oldCompany.getRegCapital());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyRcCoinType())) {
            String reCoinType = changedInfo.get(ChangedInfoKeys.companyRcCoinType());
            newCompany.setRcCoinType("null".equals(reCoinType) ? null : Integer.parseInt(reCoinType));
            oldValues.put(ChangedInfoKeys.companyRcCoinType(), oldCompany.getRcCoinType());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyPersonScale())) {
            newCompany.setPersonScale(changedInfo.get(ChangedInfoKeys.companyPersonScale()));
            oldValues.put(ChangedInfoKeys.companyPersonScale(), oldCompany.getPersonScale());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyRegProvince())) {
            String regProvince = changedInfo.get(ChangedInfoKeys.companyRegProvince());
            newCompany.setRegProvince("null".equals(regProvince) ? null : Integer.parseInt(regProvince));
            oldValues.put(ChangedInfoKeys.companyRegProvince(), oldCompany.getRegProvince());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyRegCity())) {
            String regCity = changedInfo.get(ChangedInfoKeys.companyRegCity());
            newCompany.setRegCity("null".equals(regCity) ? null : Integer.parseInt(regCity));
            oldValues.put(ChangedInfoKeys.companyRegCity(), oldCompany.getRegCity());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyFixedAssets())) {
            String fixedAssets = changedInfo.get(ChangedInfoKeys.companyFixedAssets());
            newCompany.setFixedAssets("null".equals(fixedAssets) ? null : Long.parseLong(fixedAssets));
            oldValues.put(ChangedInfoKeys.companyFixedAssets(), oldCompany.getFixedAssets());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyFaCoinType())) {
            String faCoinType = changedInfo.get(ChangedInfoKeys.companyFaCoinType());
            newCompany.setFaCoinType("null".equals(faCoinType) ? null : Integer.parseInt(faCoinType));
            oldValues.put(ChangedInfoKeys.companyFaCoinType(), oldCompany.getFaCoinType());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyFoundAt())) {
            String foundAt = changedInfo.get(ChangedInfoKeys.companyFoundAt());
            newCompany.setFoundAt(DateTime.parse(foundAt, FORMATTER).toDate());
            oldValues.put(ChangedInfoKeys.companyFoundAt(), oldCompany.getFoundAt());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyOfficialWebSite())) {
            newCompany.setOfficialWebsite(changedInfo.get(ChangedInfoKeys.companyOfficialWebSite()));
            oldValues.put(ChangedInfoKeys.companyOfficialWebSite(), oldCompany.getOfficialWebsite());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyNature())) {
            String nature = changedInfo.get(ChangedInfoKeys.companyNature());
            newCompany.setNature("null".equals(nature) ? null : Integer.parseInt(nature));
            oldValues.put(ChangedInfoKeys.companyNature(), oldCompany.getNature());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyWorldTop())) {
            String worldTop = changedInfo.get(ChangedInfoKeys.companyWorldTop());
            newCompany.setWorldTop("null".equals(worldTop) ? null : Integer.parseInt(worldTop));
            oldValues.put(ChangedInfoKeys.companyWorldTop(), oldCompany.getWorldTop());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyListedStatus())) {
            String listedStatus = changedInfo.get(ChangedInfoKeys.companyListedStatus());
            newCompany.setListedStatus("null".equals(listedStatus) ? null : Integer.parseInt(listedStatus));
            oldValues.put(ChangedInfoKeys.companyListedStatus(), oldCompany.getListedStatus());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyListedRegion())) {
            newCompany.setListedRegion(changedInfo.get(ChangedInfoKeys.companyListedRegion()));
            oldValues.put(ChangedInfoKeys.companyListedRegion(), oldCompany.getListedRegion());
        }

        if (changedInfo.containsKey(ChangedInfoKeys.companyTicker())) {
            newCompany.setTicker(changedInfo.get(ChangedInfoKeys.companyTicker()));
            oldValues.put(ChangedInfoKeys.companyTicker(), oldCompany.getTicker());
        }

    }

    companyDto.setCompany(newCompany);

    if (changedInfo.containsKey(ChangedInfoKeys.companyMainBusiness())) {
        String mainBusinessesJson = changedInfo.get(ChangedInfoKeys.companyMainBusiness());
        JavaType javaType = JsonMapper.JSON_NON_EMPTY_MAPPER.createCollectionType(List.class,
                CompanyMainBusiness.class);
        List<CompanyMainBusiness> updatedMainBusinesses = JsonMapper.JSON_NON_EMPTY_MAPPER
                .fromJson(mainBusinessesJson, javaType);
        companyDto.setCompanyMainBusinesses(updatedMainBusinesses);

        oldValues.put(ChangedInfoKeys.companyMainBusiness(), oldMainBusinesses);
    } else {
        companyDto.setCompanyMainBusinesses(oldMainBusinesses);
    }

    if (changedInfo.containsKey(ChangedInfoKeys.companySupplyPark())) {
        String supplyParkJson = changedInfo.get(ChangedInfoKeys.companySupplyPark());
        JavaType javaType = JsonMapper.JSON_NON_EMPTY_MAPPER.createCollectionType(List.class,
                CompanySupplyPark.class);
        List<CompanySupplyPark> updatedSupplyParks = JsonMapper.JSON_NON_EMPTY_MAPPER.fromJson(supplyParkJson,
                javaType);
        companyDto.setCompanySupplyParks(updatedSupplyParks);

        oldValues.put(ChangedInfoKeys.companySupplyPark(), oldSupplyParks);
    } else {
        companyDto.setCompanySupplyParks(oldSupplyParks);
    }

    supplierUpdatedInfoDto.setSupplierInfo(companyDto);
    supplierUpdatedInfoDto.setOldValues(oldValues);
    return supplierUpdatedInfoDto;

}

From source file:io.terminus.snz.user.service.SupplierInfoChangedServiceImpl.java

@Override
public SupplierUpdatedInfoDto<PaperworkDto> getNewPaperwork(Long userId, Company oldPaperwork) {
    SupplierUpdatedInfoDto<PaperworkDto> supplierUpdatedInfoDto = new SupplierUpdatedInfoDto<PaperworkDto>();
    PaperworkDto paperworkDto = new PaperworkDto();
    Map<String, Object> oldValues = Maps.newHashMap();

    BeanMapper.copy(oldPaperwork, paperworkDto);

    boolean paperworkChanged = supplierChangedInfoRedisDao.tabInfoChanged(userId,
            ChangedInfoKeys.paperworkTab());
    if (!paperworkChanged) {
        supplierUpdatedInfoDto.setSupplierInfo(paperworkDto);
        supplierUpdatedInfoDto.setOldValues(oldValues);
        return supplierUpdatedInfoDto;
    }/*w w w.  ja  v  a  2 s .  co  m*/

    Map<String, String> changedInfo = supplierChangedInfoRedisDao.getChangedInfos(userId);

    if (changedInfo.containsKey(ChangedInfoKeys.companyBusinessLicense())) {
        paperworkDto.setBusinessLicense(changedInfo.get(ChangedInfoKeys.companyBusinessLicense()));
        oldValues.put(ChangedInfoKeys.companyBusinessLicense(), oldPaperwork.getBusinessLicense());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyBusinessLicenseId())) {
        paperworkDto.setBusinessLicenseId(changedInfo.get(ChangedInfoKeys.companyBusinessLicenseId()));
        oldValues.put(ChangedInfoKeys.companyBusinessLicenseId(), oldPaperwork.getBusinessLicenseId());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyBusinessLicenseDate())) {
        String blDate = changedInfo.get(ChangedInfoKeys.companyBusinessLicenseDate());
        paperworkDto.setBlDate(DateTime.parse(blDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.companyBusinessLicenseDate(), oldPaperwork.getBlDate());
    }

    if (changedInfo.containsKey(ChangedInfoKeys.companyTaxNo())) {
        paperworkDto.setTaxNo(changedInfo.get(ChangedInfoKeys.companyTaxNo()));
        oldValues.put(ChangedInfoKeys.companyTaxNo(), oldPaperwork.getTaxNo());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyTaxNoId())) {
        paperworkDto.setTaxNoId(changedInfo.get(ChangedInfoKeys.companyTaxNoId()));
        oldValues.put(ChangedInfoKeys.companyTaxNoId(), oldPaperwork.getTaxNoId());
    }

    if (changedInfo.containsKey(ChangedInfoKeys.companyOrgCert())) {
        paperworkDto.setOrgCert(changedInfo.get(ChangedInfoKeys.companyOrgCert()));
        oldValues.put(ChangedInfoKeys.companyOrgCert(), oldPaperwork.getOrgCert());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyOrgCertId())) {
        paperworkDto.setOrgCertId(changedInfo.get(ChangedInfoKeys.companyOrgCertId()));
        oldValues.put(ChangedInfoKeys.companyOrgCertId(), oldPaperwork.getOrgCertId());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.companyOrgCertDate())) {
        String ocDate = changedInfo.get(ChangedInfoKeys.companyOrgCertDate());
        paperworkDto.setOcDate(DateTime.parse(ocDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.companyOrgCertDate(), oldPaperwork.getOcDate());
    }

    supplierUpdatedInfoDto.setSupplierInfo(paperworkDto);
    supplierUpdatedInfoDto.setOldValues(oldValues);
    return supplierUpdatedInfoDto;

}

From source file:io.terminus.snz.user.service.SupplierInfoChangedServiceImpl.java

@Override
public SupplierUpdatedInfoDto<CompanyExtraQuality> getNewCompanyExtraQuality(Long userId,
        CompanyExtraQuality oldCompanyExtraQuality) {

    SupplierUpdatedInfoDto<CompanyExtraQuality> supplierUpdatedInfoDto = new SupplierUpdatedInfoDto<CompanyExtraQuality>();
    Map<String, Object> oldValues = Maps.newHashMap();

    boolean qualityChanged = supplierChangedInfoRedisDao.tabInfoChanged(userId, ChangedInfoKeys.qualityTab());
    if (!qualityChanged) {
        supplierUpdatedInfoDto.setSupplierInfo(oldCompanyExtraQuality);
        supplierUpdatedInfoDto.setOldValues(oldValues);
        return supplierUpdatedInfoDto;
    }//  ww w  .  j a v a2 s.  com

    Map<String, String> changedInfo = supplierChangedInfoRedisDao.getChangedInfos(userId);

    CompanyExtraQuality newCompanyExtraQuality = new CompanyExtraQuality();
    BeanMapper.copy(oldCompanyExtraQuality, newCompanyExtraQuality);

    if (changedInfo.containsKey(ChangedInfoKeys.qualityRohsId())) {
        newCompanyExtraQuality.setRohsId(changedInfo.get(ChangedInfoKeys.qualityRohsId()));
        oldValues.put(ChangedInfoKeys.qualityRohsId(), oldCompanyExtraQuality.getRohsId());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityRohsAttachUrl())) {
        newCompanyExtraQuality.setRohsAttachUrl(changedInfo.get(ChangedInfoKeys.qualityRohsAttachUrl()));
        oldValues.put(ChangedInfoKeys.qualityRohsAttachUrl(), oldCompanyExtraQuality.getRohsAttachUrl());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityRohsValidDate())) {
        String rohsValidDate = changedInfo.get(ChangedInfoKeys.qualityRohsValidDate());
        newCompanyExtraQuality.setRohsValidDate(DateTime.parse(rohsValidDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.qualityRohsValidDate(), oldCompanyExtraQuality.getRohsValidDate());
    }

    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO9001Id())) {
        newCompanyExtraQuality.setIso9001Id(changedInfo.get(ChangedInfoKeys.qualityISO9001Id()));
        oldValues.put(ChangedInfoKeys.qualityISO9001Id(), oldCompanyExtraQuality.getIso9001Id());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO9001AttachUrl())) {
        newCompanyExtraQuality.setIso9001AttachUrl(changedInfo.get(ChangedInfoKeys.qualityISO9001AttachUrl()));
        oldValues.put(ChangedInfoKeys.qualityISO9001AttachUrl(), oldCompanyExtraQuality.getIso9001AttachUrl());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO9001ValidDate())) {
        String iso900ValidDate = changedInfo.get(ChangedInfoKeys.qualityISO9001ValidDate());
        newCompanyExtraQuality.setIso9001ValidDate(DateTime.parse(iso900ValidDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.qualityISO9001ValidDate(), oldCompanyExtraQuality.getIso9001ValidDate());
    }

    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO14001Id())) {
        newCompanyExtraQuality.setIso14001Id(changedInfo.get(ChangedInfoKeys.qualityISO14001Id()));
        oldValues.put(ChangedInfoKeys.qualityISO14001Id(), oldCompanyExtraQuality.getIso14001Id());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO14001AttachUrl())) {
        newCompanyExtraQuality
                .setIso14001AttachUrl(changedInfo.get(ChangedInfoKeys.qualityISO14001AttachUrl()));
        oldValues.put(ChangedInfoKeys.qualityISO14001AttachUrl(),
                oldCompanyExtraQuality.getIso14001AttachUrl());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityISO14001ValidDate())) {
        String iso1400ValidDate = changedInfo.get(ChangedInfoKeys.qualityISO14001ValidDate());
        newCompanyExtraQuality.setIso14001ValidDate(DateTime.parse(iso1400ValidDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.qualityISO14001ValidDate(),
                oldCompanyExtraQuality.getIso14001ValidDate());
    }

    if (changedInfo.containsKey(ChangedInfoKeys.qualityTS16949Id())) {
        newCompanyExtraQuality.setTs16949Id(changedInfo.get(ChangedInfoKeys.qualityTS16949Id()));
        oldValues.put(ChangedInfoKeys.qualityTS16949Id(), oldCompanyExtraQuality.getTs16949Id());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityTS16949AttachUrl())) {
        newCompanyExtraQuality.setTs16949AttachUrl(changedInfo.get(ChangedInfoKeys.qualityTS16949AttachUrl()));
        oldValues.put(ChangedInfoKeys.qualityTS16949AttachUrl(), oldCompanyExtraQuality.getTs16949AttachUrl());
    }
    if (changedInfo.containsKey(ChangedInfoKeys.qualityTS16949ValidDate())) {
        String ts16949ValidDate = changedInfo.get(ChangedInfoKeys.qualityTS16949ValidDate());
        newCompanyExtraQuality.setTs16949ValidDate(DateTime.parse(ts16949ValidDate, FORMATTER).toDate());
        oldValues.put(ChangedInfoKeys.qualityTS16949ValidDate(), oldCompanyExtraQuality.getTs16949ValidDate());
    }

    supplierUpdatedInfoDto.setSupplierInfo(newCompanyExtraQuality);
    supplierUpdatedInfoDto.setOldValues(oldValues);
    return supplierUpdatedInfoDto;
}

From source file:it.d4nguard.rgrpg.util.dynacast.adapters.DateTimeAdapter.java

License:Open Source License

/**
 * {@inheritDoc}//from   w  ww.j  av a 2s  .  c  o m
 */
@Override
public ReadableInstant adapt(String value) {
    // value is a string formatted as: "07/04/1987[dd/MM/yyyy]"
    String date = "";
    DateTimeFormatter fmt;
    Triplet<String, String, String> tri = StringUtils.getBetween(value, '[', ']');
    date = tri.getLeft();
    if (tri.hasCenter())
        fmt = DateTimeFormat.forPattern(tri.getCenter());
    else
        fmt = ISODateTimeFormat.localDateOptionalTimeParser();
    fmt = fmt.withLocale(Locale.getDefault());
    if (getType().equals(DateTime.class))
        return DateTime.parse(date, fmt);
    else if (getType().equals(DateMidnight.class))
        return DateMidnight.parse(date, fmt);
    else if (getType().equals(Instant.class))
        return Instant.parse(date, fmt);
    else if (getType().equals(MutableDateTime.class))
        return MutableDateTime.parse(date, fmt);
    else
        throw new UnsupportedOperationException("type");
}

From source file:main.java.robot.GUIModeChartTypes.java

License:Open Source License

public void startStrategy() throws Exception {
    //get the instance of the IClient interface
    final ITesterClient client = TesterFactory.getDefaultInstance();
    //set the listener that will receive system events
    client.setSystemListener(new ISystemListener() {

        @Override//from  ww w .j  ava2 s .  c o m
        public void onStart(long processId) {
            LOGGER.info("Strategy started: " + processId);
            updateButtons();
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }

        @Override
        public void onStop(long processId) {
            LOGGER.info("Strategy stopped: " + processId);
            resetButtons();

            File reportFile = new File("C:\\report.html");
            try {
                client.createReport(processId, reportFile);
            } catch (Exception e) {
                LOGGER.error(e.getMessage(), e);
            }
            if (client.getStartedStrategies().size() == 0) {
                //Do nothing
            }
        }

        @Override
        public void onConnect() {
            LOGGER.info("Connected");
        }

        @Override
        public void onDisconnect() {
            //tester doesn't disconnect
        }
    });

    DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
    DateTime from = DateTime.parse("2015-06-10 00:00", dtf);
    DateTime to = DateTime.parse("2015-06-10 11:00", dtf);

    client.setDataInterval(Period.TICK, OfferSide.BID, ITesterClient.InterpolationMethod.OPEN_TICK,
            from.getMillis(), to.getMillis());

    LOGGER.info("Connecting...");
    //connect to the server using jnlp, user name and password
    //connection is needed for data downloading
    client.connect(jnlpUrl, userName, password);

    //wait for it to connect
    int i = 10; //wait max ten seconds
    while (i > 0 && !client.isConnected()) {
        Thread.sleep(1000);
        i--;
    }
    if (!client.isConnected()) {
        LOGGER.error("Failed to connect Dukascopy servers");
        System.exit(1);
    }

    //set instruments that will be used in testing
    final Set<Instrument> instruments = new HashSet<Instrument>();
    instruments.add(Instrument.EURUSD);

    LOGGER.info("Subscribing instruments...");
    client.setSubscribedInstruments(instruments);
    //setting initial deposit
    client.setInitialDeposit(Instrument.EURUSD.getSecondaryCurrency(), 50000);
    //load data
    LOGGER.info("Downloading data");
    Future<?> future = client.downloadData(null);
    //wait for downloading to complete
    future.get();
    //start the strategy
    LOGGER.info("Starting strategy");

    client.startStrategy(new TooSimple(), new LoadingProgressListener() {
        @Override
        public void dataLoaded(long startTime, long endTime, long currentTime, String information) {
            LOGGER.info("dataLoaded " + information);
        }

        @Override
        public void loadingFinished(boolean allDataLoaded, long startTime, long endTime, long currentTime) {
            LOGGER.info("loadingFinished " + allDataLoaded);
        }

        @Override
        public boolean stopJob() {
            return false;
        }
    }, this, this);
    //now it's running

    //In the current implementation it takes prolonged time for some chart types to load (e.g. range bars, renko),
    //so we hold up execution for maximum 5 minutes till the chart gets loaded.
    //For quicker loading please manually decrease chart's horizontal scale - it gets printed every second.
    Runnable r2 = new Runnable() {
        public void run() {
            try {
                int waitTimeSecs = 300;
                LOGGER.info("Pause execution for max " + waitTimeSecs + " secs till chart gets loaded. "
                        + "For quicker loading please decrease currentChart.getBarsCount() - manually decrease chart's horizontal scale.");
                executionControl.pauseExecution();
                updateButtons();
                long startTime = System.currentTimeMillis();
                try {
                    while ((currentChart == null || Math.abs(currentChart.priceMin(0)) < 0.00001)
                            && System.currentTimeMillis() - startTime < waitTimeSecs * 1000) {
                        if (currentChart != null) {
                            int secsLeft = (int) (waitTimeSecs
                                    - (System.currentTimeMillis() - startTime) / 1000);
                            LOGGER.info(
                                    String.format("Min price=%.5f, bar count on chart=%s, time left=%s secs",
                                            currentChart.priceMin(0), currentChart.getBarsCount(), secsLeft));
                        }
                        Thread.sleep(1000);
                    }
                } catch (Exception e2) {
                    LOGGER.error(e2.getMessage(), e2);
                    e2.printStackTrace();
                }

                LOGGER.info("Chart loaded after " + ((System.currentTimeMillis() - startTime) / 1000)
                        + " secs. Please press continue.");
            } catch (Exception e2) {
                LOGGER.error(e2.getMessage(), e2);
                e2.printStackTrace();
            }
        }
    };
    Thread t2 = new Thread(r2);
    t2.start();

}