Example usage for org.joda.time DateTime getDayOfMonth

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

Introduction

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

Prototype

public int getDayOfMonth() 

Source Link

Document

Get the day of month field value.

Usage

From source file:net.sourceforge.fenixedu.presentationTier.TagLib.GanttDiagramTagLib.java

License:Open Source License

private void generateHeaders(StringBuilder builder) throws JspException {

    switch (getViewTypeEnum()) {

    case WEEKLY:// w ww  .  j  a va  2 s  . com

        builder.append("<tr>");
        builder.append("<th style=\"width: 15em;\" rowspan=\"4\">")
                .append(getMessage("label.ganttDiagram.event")).append("</th>");
        for (Integer year : getGanttDiagramObject().getYearsView().keySet()) {
            builder.append("<th colspan=\"").append(getGanttDiagramObject().getYearsView().get(year))
                    .append("\">").append(year).append("</th>");
        }
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\" rowspan=\"4\">")
                    .append(getMessage("label.ganttDiagram.period")).append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th rowspan=\"4\">").append(getMessage("label.ganttDiagram.observations"))
                    .append("</th>");
        }
        builder.append("</tr>");

        builder.append("<tr>");
        if (!StringUtils.isEmpty(getMonthlyViewUrl())) {
            String monthlyViewUrl_ = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            for (YearMonthDay month : getGanttDiagramObject().getMonthsView().keySet()) {
                builder.append("<th colspan=\"").append(getGanttDiagramObject().getMonthsView().get(month))
                        .append("\">").append("<a href=\"").append(monthlyViewUrl_)
                        .append(month.toString("ddMMyyyy")).append("\">")
                        .append(month.toString("MMM", getGanttDiagramObject().getLocale())).append("</a>")
                        .append("</th>");
            }
        } else {
            for (YearMonthDay month : getGanttDiagramObject().getMonthsView().keySet()) {
                builder.append("<th colspan=\"").append(getGanttDiagramObject().getMonthsView().get(month))
                        .append("\">").append(month.toString("MMM", getGanttDiagramObject().getLocale()))
                        .append("</th>");
            }
        }
        builder.append("</tr>");

        builder.append("<tr>");
        for (DateTime day : getGanttDiagramObject().getDays()) {
            builder.append("<th>").append(day.toString("E", getGanttDiagramObject().getLocale()))
                    .append("</th>");
        }
        builder.append("</tr>");

        builder.append("<tr>");
        if (!StringUtils.isEmpty(getDailyViewUrl())) {
            String dailyViewUrl_ = getRequest().getContextPath() + getDailyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append("<a href=\"").append(dailyViewUrl_)
                        .append(day.toString("ddMMyyyy")).append("\">").append(day.getDayOfMonth())
                        .append("</a>").append("</th>");
            }
        } else {
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append(day.getDayOfMonth()).append("</th>");
            }
        }

        builder.append("</tr>");
        break;

    case MONTHLY:

        builder.append("<tr>");
        builder.append("<th style=\"width: 15em;\" rowspan=\"2\">")
                .append(getMessage("label.ganttDiagram.event")).append("</th>");
        for (YearMonthDay month : getGanttDiagramObject().getMonthsView().keySet()) {
            builder.append("<th colspan=\"").append(getGanttDiagramObject().getMonthsView().get(month))
                    .append("\">").append(month.toString("MMM yyyy", getGanttDiagramObject().getLocale()))
                    .append("</th>");
        }
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\" rowspan=\"2\">")
                    .append(getMessage("label.ganttDiagram.period")).append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th rowspan=\"2\">").append(getMessage("label.ganttDiagram.observations"))
                    .append("</th>");
        }
        builder.append("</tr>");

        builder.append("<tr>");
        if (!StringUtils.isEmpty(getDailyViewUrl())) {
            String dailyViewUrl_ = getRequest().getContextPath() + getDailyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append("<a href=\"").append(dailyViewUrl_)
                        .append(day.toString("ddMMyyyy")).append("\">").append(day.getDayOfMonth())
                        .append("</a>").append("</th>");
            }
        } else {
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append(day.getDayOfMonth()).append("</th>");
            }
        }

        builder.append("</tr>");
        break;

    case DAILY:

        builder.append("<tr>");
        builder.append("<th style=\"width: 15em;\">").append(getMessage("label.ganttDiagram.event"))
                .append("</th>");
        builder.append("<th>")
                .append(getGanttDiagramObject().getFirstInstant().toString("E",
                        getGanttDiagramObject().getLocale()))
                .append(", ").append(getGanttDiagramObject().getFirstInstant().getDayOfMonth()).append(" ");

        if (!StringUtils.isEmpty(getMonthlyViewUrl())) {
            String monthlyViewUrl_ = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            builder.append("<a href=\"").append(monthlyViewUrl_)
                    .append(getGanttDiagramObject().getFirstInstant().toString("ddMMyyyy")).append("\">")
                    .append(getGanttDiagramObject().getFirstInstant().toString("MMM",
                            getGanttDiagramObject().getLocale()))
                    .append("</a>");
        } else {
            builder.append(getGanttDiagramObject().getFirstInstant().toString("MMM",
                    getGanttDiagramObject().getLocale()));
        }

        builder.append(" ").append(getGanttDiagramObject().getFirstInstant().getYear());

        if (!StringUtils.isEmpty(getWeeklyViewUrl())) {
            String weeklyViewUrl_ = getRequest().getContextPath() + getWeeklyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            builder.append(" (<a href=\"").append(weeklyViewUrl_)
                    .append(getGanttDiagramObject().getFirstInstant().toString("ddMMyyyy")).append("\">");
            builder.append(getMessage("label.ganttDiagram.week"))
                    .append(getGanttDiagramObject().getFirstInstant().getWeekOfWeekyear()).append(")</a>");
        }

        builder.append("</th>");
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\">").append(getMessage("label.ganttDiagram.period"))
                    .append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th>").append(getMessage("label.ganttDiagram.observations")).append("</th>");
        }
        builder.append("</tr>");
        break;

    case TOTAL:

        builder.append("<tr>");
        builder.append("<th style=\"width: 15em;\" rowspan=\"2\">")
                .append(getMessage("label.ganttDiagram.event")).append("</th>");
        for (Integer year : getGanttDiagramObject().getYearsView().keySet()) {
            builder.append("<th colspan=\"").append(getGanttDiagramObject().getYearsView().get(year))
                    .append("\">").append(year).append("</th>");
        }
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\" rowspan=\"2\">")
                    .append(getMessage("label.ganttDiagram.period")).append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th rowspan=\"2\">").append(getMessage("label.ganttDiagram.observations"))
                    .append("</th>");
        }
        builder.append("</tr>");

        builder.append("<tr>");
        for (DateTime month : getGanttDiagramObject().getMonths()) {
            builder.append("<th>").append(month.toString("MMM", getGanttDiagramObject().getLocale()))
                    .append("</th>");
        }
        builder.append("</tr>");
        break;

    case MONTHLY_TOTAL:

        builder.append("<tr>");
        builder.append("<th style=\"width: 15em;\">").append(getMessage("label.ganttDiagram.event"))
                .append("</th>");
        builder.append("<th>")
                .append(getGanttDiagramObject().getFirstInstant().toString("MMM",
                        getGanttDiagramObject().getLocale()))
                .append(" ").append(getGanttDiagramObject().getFirstInstant().getYear()).append("</th>");
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\">").append(getMessage("label.ganttDiagram.period"))
                    .append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th>").append(getMessage("label.ganttDiagram.observations")).append("</th>");
        }
        builder.append("</tr>");
        break;

    case YEAR_DAILY:

        builder.append("<tr>");
        builder.append("<th rowspan=\"2\">").append(getMessage("label.ganttDiagram.event")).append("</th>");
        for (Integer year : getGanttDiagramObject().getYearsView().keySet()) {
            builder.append("<th colspan=\"").append(getGanttDiagramObject().getYearsView().get(year))
                    .append("\">").append(year).append("</th>");
        }
        if (isShowPeriod()) {
            builder.append("<th style=\"width: 20em;\" rowspan=\"2\">")
                    .append(getMessage("label.ganttDiagram.period")).append("</th>");
        }
        if (isShowObservations()) {
            builder.append("<th rowspan=\"2\">").append(getMessage("label.ganttDiagram.observations"))
                    .append("</th>");
        }
        builder.append("</tr>");

        builder.append("<tr>");
        if (!StringUtils.isEmpty(getDailyViewUrl())) {
            String dailyViewUrl_ = getRequest().getContextPath() + getDailyViewUrl() + "&amp;"
                    + getFirstDayParameter() + "=";
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append("<a href=\"").append(dailyViewUrl_)
                        .append(day.toString("ddMMyyyy")).append("\">").append(day.getDayOfMonth())
                        .append("</a>").append("</th>");
            }
        } else {
            for (DateTime day : getGanttDiagramObject().getDays()) {
                builder.append("<th>").append(day.getDayOfMonth()).append("</th>");
            }
        }

        builder.append("</tr>");
        break;

    default:
        break;
    }
}

From source file:net.sourceforge.fenixedu.presentationTier.TagLib.GanttDiagramTagLib.java

License:Open Source License

private void insertNextAndBeforeLinks(StringBuilder builder) throws JspException {

    YearMonthDay firstDay = getGanttDiagramObject().getFirstInstant().toYearMonthDay();
    if (firstDay != null) {

        String nextUrl = "";
        String beforeUrl = "";

        switch (getViewTypeEnum()) {

        case WEEKLY:

            if (!StringUtils.isEmpty(getWeeklyViewUrl())) {
                nextUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&amp;"
                        + getFirstDayParameter() + "="
                        + firstDay.minusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy");
                builder.append(//w w w  .  j  a v  a2  s . c o m
                        "<tr><td class=\"tcalendarlinks\"></td><td colspan=\"7\" class=\"acenter tcalendarlinks\"> <span class=\"smalltxt\"><a href=\"")
                        .append(beforeUrl).append("\">").append("&lt;&lt; ")
                        .append(getMessage("label.previous.week")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.week")).append(" &gt;&gt;").append("</a>")
                        .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>");
            }
            break;

        case DAILY:

            if (!StringUtils.isEmpty(getDailyViewUrl())) {
                nextUrl = getRequest().getContextPath() + getDailyViewUrl() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusDays(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getDailyViewUrl() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.minusDays(1).toString("ddMMyyyy");
                builder.append(
                        "<tr><td class=\"tcalendarlinks\"></td><td class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"")
                        .append(beforeUrl).append("\">").append("&lt;&lt; ")
                        .append(getMessage("label.previous.day")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.day")).append(" &gt;&gt;").append("</a>")
                        .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>");
            }
            break;

        case MONTHLY:

            if (!StringUtils.isEmpty(getMonthlyViewUrl())) {
                DateTime month = firstDay.toDateTimeAtMidnight();
                DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month;
                DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1);
                int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1;
                nextUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusMonths(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                        + getFirstDayParameter() + "=" + firstDay.minusMonths(1).toString("ddMMyyyy");
                builder.append("<tr><td class=\"tcalendarlinks\"></td><td colspan=\"").append(monthNumberOfDays)
                        .append("\" class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"")
                        .append(beforeUrl).append("\">").append("&lt;&lt; ")
                        .append(getMessage("label.previous.month")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.month")).append(" &gt;&gt;").append("</a>")
                        .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>");
            }
            break;

        case YEAR_DAILY:

            if (!StringUtils.isEmpty(getMonthlyViewUrl())) {
                DateTime month = firstDay.toDateTimeAtMidnight();
                DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month;
                DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1);
                int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1;
                nextUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;" + getFirstDayParameter()
                        + "=" + firstDay.plusMonths(1).toString("ddMMyyyy");
                beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&amp;"
                        + getFirstDayParameter() + "=" + firstDay.minusMonths(1).toString("ddMMyyyy");
                builder.append("<tr><td class=\"tcalendarlinks\"></td><td colspan=\"").append(monthNumberOfDays)
                        .append("\" class=\"acenter tcalendarlinks\"><span class=\"smalltxt\"><a href=\"")
                        .append(beforeUrl).append("\">").append("&lt;&lt; ")
                        .append(getMessage("label.previous.month")).append("</a>");
                builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">")
                        .append(getMessage("label.next.month")).append(" &gt;&gt;").append("</a>")
                        .append("</span></td><td class=\"tcalendarlinks\"></td><td class=\"tcalendarlinks\"></td></tr>");
            }
            break;

        default:
            break;
        }
    }
}

From source file:net.sourceforge.fenixedu.util.renderer.GanttDiagram.java

License:Open Source License

private void calculateFirstAndLastInstantInMonthlyMode(YearMonthDay begin) {
    if (begin == null) {
        throw new IllegalArgumentException();
    }//  ww w  . j  av a 2  s. c o m
    DateTime beginDateTime = begin.toDateTimeAtMidnight();
    beginDateTime = (beginDateTime.getDayOfMonth() != 1) ? beginDateTime.withDayOfMonth(1) : beginDateTime;
    setFirstInstant(beginDateTime);
    setLastInstant(beginDateTime.plusMonths(1).minusDays(1));
}

From source file:net.sourceforge.fenixedu.util.renderer.GanttDiagram.java

License:Open Source License

public int getMonthsDaysSize() {
    int result = 0;
    for (DateTime month : getMonths()) {
        DateTime firstDayOfMonth = (month.getDayOfMonth() != 1) ? month.withDayOfMonth(1) : month;
        DateTime lastDayOfMonth = firstDayOfMonth.plusMonths(1).minusDays(1);
        int monthNumberOfDays = Days.daysBetween(firstDayOfMonth, lastDayOfMonth).getDays() + 1;
        result += monthNumberOfDays;//from   w  ww .j a  v a2  s  .co  m
    }
    return result;
}

From source file:net.tourbook.data.TourData.java

License:Open Source License

public void setWeek(final DateTime dt) {

    final int firstDayOfWeek = _prefStore.getInt(ITourbookPreferences.CALENDAR_WEEK_FIRST_DAY_OF_WEEK);
    final int minimalDaysInFirstWeek = _prefStore
            .getInt(ITourbookPreferences.CALENDAR_WEEK_MIN_DAYS_IN_FIRST_WEEK);

    _calendar.setFirstDayOfWeek(firstDayOfWeek);
    _calendar.setMinimalDaysInFirstWeek(minimalDaysInFirstWeek);

    _calendar.set(dt.getYear(), dt.getMonthOfYear() - 1, dt.getDayOfMonth());

    startWeek = (short) _calendar.get(Calendar.WEEK_OF_YEAR);
    startWeekYear = (short) Util.getYearForWeek(_calendar);
}

From source file:net.tourbook.database.TourDatabase.java

License:Open Source License

/**
 * Persist {@link TourData} in the database and updates the tour data cache with the persisted
 * tour<br>/* w  ww  .  j a va2  s .com*/
 * <br>
 * When a tour has no person the tour will not be saved, a person must be set first before the
 * tour can be saved
 * 
 * @param tourData
 * @return persisted {@link TourData} or <code>null</code> when saving fails
 */
public static TourData saveTour(final TourData tourData) {

    /*
     * prevent saving a tour which was deleted before
     */
    if (tourData.isTourDeleted) {
        return null;
    }

    /*
     * prevent saving a tour when a person is not set, this check is for internal use that all
     * data are valid
     */
    if (tourData.getTourPerson() == null) {
        StatusUtil.log("Cannot save a tour without a person: " + tourData); //$NON-NLS-1$
        return null;
    }

    /*
     * check size of varcar fields
     */
    if (tourData.isValidForSave() == false) {
        return null;
    }

    final DateTime dtNow = new DateTime();

    final long dtSaved = (dtNow.getYear() * 10000000000L) + (dtNow.getMonthOfYear() * 100000000L)
            + (dtNow.getDayOfMonth() * 1000000L) + (dtNow.getHourOfDay() * 10000L)
            + (dtNow.getMinuteOfHour() * 100L) + dtNow.getSecondOfMinute();

    EntityManager em = TourDatabase.getInstance().getEntityManager();

    TourData persistedEntity = null;

    if (em != null) {

        final EntityTransaction ts = em.getTransaction();

        try {

            tourData.onPrePersist();

            ts.begin();
            {
                final TourData tourDataEntity = em.find(TourData.class, tourData.getTourId());
                if (tourDataEntity == null) {

                    // tour is not yet persisted

                    tourData.setDateTimeCreated(dtSaved);

                    em.persist(tourData);

                    persistedEntity = tourData;

                } else {

                    tourData.setDateTimeModified(dtSaved);

                    persistedEntity = em.merge(tourData);
                }
            }
            ts.commit();

        } catch (final Exception e) {

            StatusUtil.showStatus(Messages.Tour_Database_TourSaveError, e);

        } finally {
            if (ts.isActive()) {
                ts.rollback();
            }
            em.close();
        }
    }

    if (persistedEntity != null) {

        em = TourDatabase.getInstance().getEntityManager();
        try {

            persistedEntity = em.find(TourData.class, tourData.getTourId());

        } catch (final Exception e) {
            StatusUtil.log(e);
        }

        em.close();

        TourManager.getInstance().updateTourInCache(persistedEntity);
    }

    return persistedEntity;
}

From source file:net.tourbook.device.garmin.GarminSAXHandler.java

License:Open Source License

/**
 * Check if date time starts with the date 2007-04-01, this can happen when the tcx file is
 * partly corrupt. When tour starts with the date 2007-04-01, move forward in the list until
 * another date occures and use this as the start date.
 *///from   w w  w  .j av  a 2s . co  m
private void adjustTourStart() {

    int validIndex = 0;
    DateTime checkedTourStart = null;

    for (final TimeData timeData : _dtList) {

        checkedTourStart = new DateTime(timeData.absoluteTime);

        if (checkedTourStart.getYear() == 2007 && checkedTourStart.getMonthOfYear() == 4
                && checkedTourStart.getDayOfMonth() == 1) {

            // this is an invalid time slice

            validIndex++;
            continue;

        } else {

            // this is a valid time slice
            break;
        }
    }

    if (validIndex == 0) {

        // date is not 2007-04-01

        return;

    } else {

        if (validIndex == _dtList.size()) {

            // all time slices have the same "invalid" date 2007-04-01 but the date also could be valid

            return;
        }
    }

    /*
     * the date starts with 2007-04-01 but it changes to another date
     */

    final TimeData[] timeSlices = _dtList.toArray(new TimeData[_dtList.size()]);

    /*
     * get average time slice duration
     */
    long sliceAvgDuration;
    if (validIndex == 1) {

        sliceAvgDuration = 8;

    } else {

        long prevSliceTime = 0;
        long sliceDuration = 0;

        for (int sliceIndex = 0; sliceIndex < validIndex; sliceIndex++) {

            final long currentTime = timeSlices[sliceIndex].absoluteTime / 1000;

            if (sliceIndex > 0) {
                sliceDuration += currentTime - prevSliceTime;
            }

            prevSliceTime = currentTime;
        }

        sliceAvgDuration = sliceDuration / validIndex;
    }

    long validTime = timeSlices[validIndex].absoluteTime / 1000;
    long prevInvalidTime = 0;

    for (int sliceIndex = validIndex - 1; sliceIndex >= 0; sliceIndex--) {

        final TimeData timeSlice = timeSlices[sliceIndex];
        final long currentInvalidTime = timeSlice.absoluteTime / 1000;

        if (sliceIndex == validIndex - 1) {

            /*
             * this is the time slice before the valid time slices, use the average time slice
             * diff to get the time, because this time cannot be evaluated it is estimated
             */

            validTime = validTime - sliceAvgDuration;

        } else {

            final long timeDiff = prevInvalidTime - currentInvalidTime;
            validTime = validTime - timeDiff;
        }

        timeSlice.absoluteTime = validTime * 1000;
        prevInvalidTime = currentInvalidTime;
    }

    StatusUtil.log(//
            NLS.bind(//
                    Messages.Garmin_SAXHandler_InvalidDate_2007_04_01, _importFilePath,
                    new DateTime(_dtList.get(0).absoluteTime).toString()));
}

From source file:net.tourbook.device.garmin.GarminSAXHandler.java

License:Open Source License

private void finalizeTour() {

    // check if data are available
    if (_dtList.size() == 0) {
        return;/*ww  w .j a  va  2s.c om*/
    }

    validateTimeSeries();

    // create data object for each tour
    final TourData tourData = new TourData();

    // set tour notes
    setTourNotes(tourData);

    /*
     * set tour start date/time
     */
    adjustTourStart();
    final DateTime dtTourStart = new DateTime(_dtList.get(0).absoluteTime);

    tourData.setStartHour((short) dtTourStart.getHourOfDay());
    tourData.setStartMinute((short) dtTourStart.getMinuteOfHour());
    tourData.setStartSecond((short) dtTourStart.getSecondOfMinute());

    tourData.setStartYear((short) dtTourStart.getYear());
    tourData.setStartMonth((short) dtTourStart.getMonthOfYear());
    tourData.setStartDay((short) dtTourStart.getDayOfMonth());

    tourData.setWeek(dtTourStart);

    tourData.setIsDistanceFromSensor(_isDistanceFromSensor);
    tourData.setDeviceTimeInterval((short) -1);
    tourData.importRawDataFile = _importFilePath;
    tourData.setTourImportFilePath(_importFilePath);

    tourData.createTimeSeries(_dtList, true);

    tourData.setDeviceModeName(_activitySport);

    tourData.setCalories(_tourCalories);

    // after all data are added, the tour id can be created
    final int[] distanceSerie = tourData.getMetricDistanceSerie();
    String uniqueKey;

    if (_deviceDataReader.isCreateTourIdWithRecordingTime) {

        /*
         * 25.5.2009: added recording time to the tour distance for the unique key because tour
         * export and import found a wrong tour when exporting was done with camouflage speed ->
         * this will result in a NEW tour
         */
        final int tourRecordingTime = tourData.getTourRecordingTime();

        if (distanceSerie == null) {
            uniqueKey = Integer.toString(tourRecordingTime);
        } else {

            final long tourDistance = distanceSerie[(distanceSerie.length - 1)];

            uniqueKey = Long.toString(tourDistance + tourRecordingTime);
        }

    } else {

        /*
         * original version to create tour id
         */
        if (distanceSerie == null) {
            uniqueKey = Util.UNIQUE_ID_SUFFIX_GARMIN_TCX;
        } else {
            uniqueKey = Integer.toString(distanceSerie[distanceSerie.length - 1]);
        }
    }

    final Long tourId = tourData.createTourId(uniqueKey);

    // check if the tour is already imported
    if (_tourDataMap.containsKey(tourId) == false) {

        tourData.computeAltitudeUpDown();
        tourData.computeTourDrivingTime();
        tourData.computeComputedValues();

        final String deviceName = _sport.creatorName;
        final String majorVersion = _sport.creatorVersionMajor;
        final String minorVersion = _sport.creatorVersionMinor;

        tourData.setDeviceId(_deviceDataReader.deviceId);

        tourData.setDeviceName(
                _deviceDataReader.visibleName + (deviceName == null ? UI.EMPTY_STRING : UI.SPACE + deviceName));

        tourData.setDeviceFirmwareVersion(majorVersion == null //
                ? UI.EMPTY_STRING
                : majorVersion + (minorVersion == null //
                        ? UI.EMPTY_STRING
                        : UI.DOT + minorVersion));

        // add new tour to other tours
        _tourDataMap.put(tourId, tourData);
    }

    _isImported = true;
}

From source file:net.tourbook.device.gpx.GPX_SAX_Handler.java

License:Open Source License

private void finalizeTour() {

    if (_timeDataList.size() == 0) {
        // there is not data
        return;//www  .  j  a  va2 s. c  o  m
    }

    final TimeData firstTimeData = _timeDataList.get(0);

    // create data object for each tour
    final TourData tourData = new TourData();

    tourData.setTourTitle(_trkName);

    /*
     * set tour start date/time
     */
    final DateTime dtTourStart = new DateTime(firstTimeData.absoluteTime);

    tourData.setStartYear((short) dtTourStart.getYear());
    tourData.setStartMonth((short) dtTourStart.getMonthOfYear());
    tourData.setStartDay((short) dtTourStart.getDayOfMonth());

    tourData.setStartHour((short) dtTourStart.getHourOfDay());
    tourData.setStartMinute((short) dtTourStart.getMinuteOfHour());
    tourData.setStartSecond((short) dtTourStart.getSecondOfMinute());

    tourData.setWeek(tourData.getStartYear(), tourData.getStartMonth(), tourData.getStartDay());

    tourData.setDeviceTimeInterval((short) -1);
    tourData.setTemperatureScale(TourbookDevice.TEMPERATURE_SCALE);

    tourData.importRawDataFile = _importFilePath;
    tourData.setTourImportFilePath(_importFilePath);

    tourData.createTimeSeries(_timeDataList, true);
    tourData.computeAltitudeUpDown();

    tourData.setWayPoints(_wptList);

    /*
     * adjust default marker which are created in tourData.createTimeSeries()
     */
    for (final TourMarker tourMarker : tourData.getTourMarkers()) {

        tourMarker.setVisualPosition(ChartLabel.VISUAL_VERTICAL_BOTTOM_CHART);

        // disable time/distance
        tourMarker.setTime(-1);
        tourMarker.setDistance(-1);
    }

    // after all data are added, the tour id can be created
    final int[] distanceSerie = tourData.getMetricDistanceSerie();
    String uniqueKey;

    if (_deviceDataReader.isCreateTourIdWithRecordingTime) {

        /*
         * 23.3.2009: added recording time to the tour distance for the unique key because tour
         * export and import found a wrong tour when exporting was done with camouflage speed ->
         * this will result in a NEW tour
         */
        final int tourRecordingTime = tourData.getTourRecordingTime();

        if (distanceSerie == null) {
            uniqueKey = Integer.toString(tourRecordingTime);
        } else {

            final long tourDistance = distanceSerie[(distanceSerie.length - 1)];

            uniqueKey = Long.toString(tourDistance + tourRecordingTime);
        }

    } else {

        /*
         * original version to create tour id
         */
        if (distanceSerie == null) {
            uniqueKey = Util.UNIQUE_ID_SUFFIX_GPX;
        } else {
            uniqueKey = Integer.toString(distanceSerie[distanceSerie.length - 1]);
        }
    }

    final Long tourId = tourData.createTourId(uniqueKey);

    // check if the tour is already imported
    if (_tourDataMap.containsKey(tourId) == false) {

        tourData.computeTourDrivingTime();
        tourData.computeComputedValues();

        tourData.setDeviceId(_deviceDataReader.deviceId);
        tourData.setDeviceName(_deviceDataReader.visibleName);

        // add new tour to other tours
        _tourDataMap.put(tourId, tourData);
    }

    _isImported = true;
}

From source file:net.tourbook.device.polar.hrm.PolarHRMDataReader.java

License:Open Source License

private void createTourData(final HashMap<Long, TourData> tourDataMap) {

    // create data object for each tour
    final TourData tourData = new TourData();

    /*/*w  ww . ja v  a2s  . c o m*/
     * set tour start date/time
     */
    final DateTime dtTourStart = new DateTime(_sectionParams.startYear, _sectionParams.startMonth,
            _sectionParams.startDay, _sectionParams.startHour, _sectionParams.startMinute,
            _sectionParams.startSecond, 0);

    tourData.setStartHour((short) dtTourStart.getHourOfDay());
    tourData.setStartMinute((short) dtTourStart.getMinuteOfHour());
    tourData.setStartSecond((short) dtTourStart.getSecondOfMinute());

    tourData.setStartYear((short) dtTourStart.getYear());
    tourData.setStartMonth((short) dtTourStart.getMonthOfYear());
    tourData.setStartDay((short) dtTourStart.getDayOfMonth());

    tourData.setWeek(dtTourStart);

    tourData.setDeviceTimeInterval((short) _sectionParams.mtInterval);

    tourData.importRawDataFile = _importFilePath;
    tourData.setTourImportFilePath(_importFilePath);

    //      tourData.setCalories(_calories);
    tourData.setRestPulse(_sectionParams.restHR == Integer.MIN_VALUE ? 0 : _sectionParams.restHR);

    if (_sectionTrip != null) {
        tourData.setStartDistance(_sectionTrip.odometer == Integer.MIN_VALUE ? 0 : _sectionTrip.odometer);
    }

    final ArrayList<TimeData> timeSeries = createTourData10CreateTimeSeries(dtTourStart);
    createTourData20SetTemperature(tourData, timeSeries);

    tourData.createTimeSeries(timeSeries, true);

    createTourData30CreateMarkers(tourData);
    tourData.computeAltitudeUpDown();

    // after all data are added, the tour id can be created
    final Long tourId = tourData.createTourId(createUniqueId(tourData, Util.UNIQUE_ID_SUFFIX_POLAR_HRM));

    // check if the tour is already imported
    if (tourDataMap.containsKey(tourId) == false) {

        tourData.computeTourDrivingTime();
        tourData.computeComputedValues();

        tourData.setDeviceId(deviceId);
        tourData.setDeviceName(_sectionParams.monitorName);
        tourData.setDeviceFirmwareVersion(Integer.toString(_hrmVersion));

        // add new tour to other tours
        tourDataMap.put(tourId, tourData);
    }
}