List of usage examples for org.joda.time DateTime getDayOfMonth
public int getDayOfMonth()
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() + "&" + 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() + "&" + 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() + "&" + 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() + "&" + 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() + "&" + 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() + "&" + 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() + "&" + getFirstDayParameter() + "=" + firstDay.plusDays(Lesson.NUMBER_OF_DAYS_IN_WEEK).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getWeeklyViewUrl() + "&" + 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("<< ") .append(getMessage("label.previous.week")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.week")).append(" >>").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() + "&" + getFirstDayParameter() + "=" + firstDay.plusDays(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getDailyViewUrl() + "&" + 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("<< ") .append(getMessage("label.previous.day")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.day")).append(" >>").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() + "&" + getFirstDayParameter() + "=" + firstDay.plusMonths(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + 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("<< ") .append(getMessage("label.previous.month")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.month")).append(" >>").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() + "&" + getFirstDayParameter() + "=" + firstDay.plusMonths(1).toString("ddMMyyyy"); beforeUrl = getRequest().getContextPath() + getMonthlyViewUrl() + "&" + 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("<< ") .append(getMessage("label.previous.month")).append("</a>"); builder.append(" , ").append("<a href=\"").append(nextUrl).append("\">") .append(getMessage("label.next.month")).append(" >>").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); } }