Example usage for org.joda.time DateTime getSecondOfMinute

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

Introduction

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

Prototype

public int getSecondOfMinute() 

Source Link

Document

Get the second of minute field value.

Usage

From source file:net.tourbook.printing.DialogPrintTour.java

License:Open Source License

/**
 * Overwrite filename with the first tour date/time when the tour is not merged
 *//*  w  ww  . j a  v  a  2s .  c  o  m*/
private void setFileName() {

    // search for the first tour
    TourData minTourData = null;
    final long minTourMillis = 0;

    for (final TourData tourData : _tourDataList) {
        final DateTime checkingTourDate = TourManager.getTourDateTime(tourData);

        if (minTourData == null) {
            minTourData = tourData;
        } else {

            final long tourMillis = checkingTourDate.getMillis();
            if (tourMillis < minTourMillis) {
                minTourData = tourData;
            }
        }
    }

    if ((_tourDataList.size() == 1) && (_tourStartIndex != -1) && (_tourEndIndex != -1)) {

        // display the start date/time

        final DateTime dtTour = new DateTime(minTourData.getStartYear(), minTourData.getStartMonth(),
                minTourData.getStartDay(), minTourData.getStartHour(), minTourData.getStartMinute(),
                minTourData.getStartSecond(), 0);

        final int startTime = minTourData.timeSerie[_tourStartIndex];
        final DateTime tourTime = dtTour.plusSeconds(startTime);

        _comboFile.setText(UI.format_yyyymmdd_hhmmss(tourTime.getYear(), tourTime.getMonthOfYear(),
                tourTime.getDayOfMonth(), tourTime.getHourOfDay(), tourTime.getMinuteOfHour(),
                tourTime.getSecondOfMinute()));
    } else {

        // display the tour date/time

        _comboFile.setText(UI.format_yyyymmdd_hhmmss(minTourData));
    }
}

From source file:net.tourbook.tour.DialogExtractTour.java

License:Open Source License

/**
 * Create a new tour with the extracted time slices
 *//*from ww w  .  j  ava 2 s  . co m*/
private boolean extractTour() {

    /*
     * get data series
     */
    final int[] tourAltitudeSerie = _tourDataSource.altitudeSerie;
    final int[] tourCadenceSerie = _tourDataSource.cadenceSerie;
    final int[] tourDistanceSerie = _tourDataSource.distanceSerie;
    final double[] tourLatitudeSerie = _tourDataSource.latitudeSerie;
    final double[] tourLongitudeSerie = _tourDataSource.longitudeSerie;
    final int[] tourPulseSerie = _tourDataSource.pulseSerie;
    final int[] tourTemperatureSerie = _tourDataSource.temperatureSerie;
    final int[] tourTimeSerie = _tourDataSource.timeSerie;

    final boolean isTourAltitude = (tourAltitudeSerie != null) && (tourAltitudeSerie.length > 0);
    final boolean isTourCadence = (tourCadenceSerie != null) && (tourCadenceSerie.length > 0);
    final boolean isTourDistance = (tourDistanceSerie != null) && (tourDistanceSerie.length > 0);
    final boolean isTourLat = (tourLatitudeSerie != null) && (tourLatitudeSerie.length > 0);
    final boolean isTourLon = (tourLongitudeSerie != null) && (tourLongitudeSerie.length > 0);
    final boolean isTourPulse = (tourPulseSerie != null) && (tourPulseSerie.length > 0);
    final boolean isTourTemperature = (tourTemperatureSerie != null) && (tourTemperatureSerie.length > 0);
    final boolean isTourTime = (tourTimeSerie != null) && (tourTimeSerie.length > 0);

    /*
     * get speed/power data when data are created by the device
     */
    int[] tourPowerSerie = null;
    int[] tourSpeedSerie = null;
    final boolean isTourPower = _tourDataSource.isPowerSerieFromDevice();
    final boolean isTourSpeed = _tourDataSource.isSpeedSerieFromDevice();
    if (isTourPower) {
        tourPowerSerie = _tourDataSource.getPowerSerie();
    }
    if (isTourSpeed) {
        tourSpeedSerie = _tourDataSource.getSpeedSerie();
    }

    int dataSerieLength = -1;

    if (isTourAltitude) {
        dataSerieLength = tourAltitudeSerie.length;
    } else if (isTourCadence) {
        dataSerieLength = tourCadenceSerie.length;
    } else if (isTourDistance) {
        dataSerieLength = tourDistanceSerie.length;
    } else if (isTourLat) {
        dataSerieLength = tourLatitudeSerie.length;
    } else if (isTourLon) {
        dataSerieLength = tourLongitudeSerie.length;
    } else if (isTourPower) {
        dataSerieLength = tourPowerSerie.length;
    } else if (isTourPulse) {
        dataSerieLength = tourPulseSerie.length;
    } else if (isTourSpeed) {
        dataSerieLength = tourSpeedSerie.length;
    } else if (isTourTemperature) {
        dataSerieLength = tourTemperatureSerie.length;
    } else if (isTourTime) {
        dataSerieLength = tourTimeSerie.length;
    }

    if (dataSerieLength == -1) {
        StatusUtil.showStatus(Messages.NT001_DialogExtractTour_InvalidTourData);
        return false;
    }

    if (_isSplitTour) {
        // _extractEndIndex contains -1, set end index to the last time slice
        _extractEndIndex = dataSerieLength - 1;
    }

    final int extractSerieLength = _extractEndIndex - _extractStartIndex + 1;

    final int[] extractAltitudeSerie = new int[extractSerieLength];
    final int[] extractCadenceSerie = new int[extractSerieLength];
    final int[] extractDistanceSerie = new int[extractSerieLength];
    final double[] extractLatitudeSerie = new double[extractSerieLength];
    final double[] extractLongitudeSerie = new double[extractSerieLength];
    final int[] extractPowerSerie = new int[extractSerieLength];
    final int[] extractPulseSerie = new int[extractSerieLength];
    final int[] extractSpeedSerie = new int[extractSerieLength];
    final int[] extractTemperatureSerie = new int[extractSerieLength];
    final int[] extractTimeSerie = new int[extractSerieLength];

    final HashSet<TourMarker> extractedTourMarker = new HashSet<TourMarker>();
    final ArrayList<TourWayPoint> extractedWayPoints = new ArrayList<TourWayPoint>();

    /*
     * get start date/time
     */
    DateTime extractedTourStart = null;
    final boolean isOriginalTime = _chkKeepOriginalDateTime.getSelection();
    if (isOriginalTime) {
        extractedTourStart = _extractedTourStartTime;
    } else {
        extractedTourStart = new DateTime(_dtTourDate.getYear(), _dtTourDate.getMonth() + 1,
                _dtTourDate.getDay(), _dtTourTime.getHours(), _dtTourTime.getMinutes(),
                _dtTourTime.getSeconds(), 0);
    }

    int relTourStartTime = 0;
    int extractedRecordingTime = 0;
    if (isTourTime) {
        relTourStartTime = tourTimeSerie[_extractStartIndex];
        extractedRecordingTime = tourTimeSerie[_extractEndIndex] - relTourStartTime;
    }

    // get distance
    int extractedDistance = 0;
    int relTourStartDistance = 0;
    if (isTourDistance) {
        relTourStartDistance = tourDistanceSerie[_extractStartIndex];
        extractedDistance = tourDistanceSerie[_extractEndIndex] - relTourStartDistance;
    }

    /*
     * copy existing data series
     */
    int extractedSerieIndex = 0;
    for (int sourceSerieIndex = _extractStartIndex; sourceSerieIndex <= _extractEndIndex; sourceSerieIndex++) {

        if (isTourTime) {
            extractTimeSerie[extractedSerieIndex] = tourTimeSerie[sourceSerieIndex] - relTourStartTime;
        }

        if (isTourAltitude) {
            extractAltitudeSerie[extractedSerieIndex] = tourAltitudeSerie[sourceSerieIndex];
        }
        if (isTourCadence) {
            extractCadenceSerie[extractedSerieIndex] = tourCadenceSerie[sourceSerieIndex];
        }

        if (isTourDistance) {
            extractDistanceSerie[extractedSerieIndex] = tourDistanceSerie[sourceSerieIndex]
                    - relTourStartDistance;
        }

        if (isTourPulse) {
            extractPulseSerie[extractedSerieIndex] = tourPulseSerie[sourceSerieIndex];
        }
        if (isTourLat) {
            extractLatitudeSerie[extractedSerieIndex] = tourLatitudeSerie[sourceSerieIndex];
        }
        if (isTourLon) {
            extractLongitudeSerie[extractedSerieIndex] = tourLongitudeSerie[sourceSerieIndex];
        }
        if (isTourTemperature) {
            extractTemperatureSerie[extractedSerieIndex] = tourTemperatureSerie[sourceSerieIndex];
        }
        if (isTourPower) {
            extractPowerSerie[extractedSerieIndex] = tourPowerSerie[sourceSerieIndex];
        }
        if (isTourSpeed) {
            extractSpeedSerie[extractedSerieIndex] = tourSpeedSerie[sourceSerieIndex];
        }

        extractedSerieIndex++;
    }

    /*
     * get tour markers, way points
     */
    final Set<TourMarker> tourMarkers = _tourDataSource.getTourMarkers();
    if (_chkIncludeMarkerWaypoints.getSelection()) {

        for (final TourMarker tourMarker : tourMarkers) {

            final int markerSerieIndex = tourMarker.getSerieIndex();

            // skip marker which are not within the extracted time slices
            if (markerSerieIndex < _extractStartIndex || markerSerieIndex > _extractEndIndex) {
                continue;
            }

            final int extractedMarkerIndex = markerSerieIndex - _extractStartIndex;

            final TourMarker extractedMarker = tourMarker.clone(_tourDataTarget);

            // adjust marker position, position is relativ to the tour start
            extractedMarker.setSerieIndex(extractedMarkerIndex);

            if (isTourTime) {
                tourMarker.setTime(extractTimeSerie[extractedMarkerIndex]);
            }
            if (isTourDistance) {
                tourMarker.setDistance(extractDistanceSerie[extractedMarkerIndex]);
            }

            extractedTourMarker.add(extractedMarker);
        }

        /*
         * copy all way points, they can be independant of the tour
         */
        for (final TourWayPoint wayPoint : _tourDataSource.getTourWayPoints()) {
            extractedWayPoints.add((TourWayPoint) wayPoint.clone());
        }
    }

    // get description
    String extractedDescription = UI.EMPTY_STRING;
    if (_chkIncludeDescription.getSelection()) {
        extractedDescription = _tourDataSource.getTourDescription();
    }

    /*
     * get calories
     */
    int extractedCalories = 0;
    if (_extractStartIndex == 0 && _extractEndIndex == (dataSerieLength - 1)) {

        // tour is copied, the calories can also be copied
        extractedCalories = _tourDataSource.getCalories();

    } else {
        // TODO calories should be set when they are computed
    }

    /*
     * set target tour data
     */
    _tourDataTarget.setStartYear((short) extractedTourStart.getYear());
    _tourDataTarget.setStartMonth((short) extractedTourStart.getMonthOfYear());
    _tourDataTarget.setStartDay((short) extractedTourStart.getDayOfMonth());
    _tourDataTarget.setStartHour((short) extractedTourStart.getHourOfDay());
    _tourDataTarget.setStartMinute((short) extractedTourStart.getMinuteOfHour());
    _tourDataTarget.setStartSecond((short) extractedTourStart.getSecondOfMinute());

    _tourDataTarget.setWeek(extractedTourStart);

    // tour id must be created after the tour date/time is set
    _tourDataTarget.createTourId();

    _tourDataTarget.setTourTitle(_txtTourTitle.getText());
    _tourDataTarget.setTourDescription(extractedDescription.toString());

    _tourDataTarget.setTourMarkers(extractedTourMarker);
    _tourDataTarget.setWayPoints(extractedWayPoints);
    _tourDataTarget.setDeviceName(_isSplitTour ? Messages.Dialog_SplitTour_Label_DeviceName
            : Messages.Dialog_ExtractTour_Label_DeviceName);

    _tourDataTarget.setIsDistanceFromSensor(_tourDataSource.isDistanceSensorPresent());
    _tourDataTarget.setDeviceTimeInterval(_tourDataSource.getDeviceTimeInterval());

    _tourDataTarget.setTourRecordingTime(extractedRecordingTime);
    _tourDataTarget.setTourDistance(extractedDistance);

    _tourDataTarget.setWeather(_tourDataSource.getWeather());
    _tourDataTarget.setWeatherClouds(_tourDataSource.getWeatherClouds());
    _tourDataTarget.setWeatherWindDir(_tourDataSource.getWeatherWindDir());
    _tourDataTarget.setWeatherWindSpeed(_tourDataSource.getWeatherWindSpeed());

    _tourDataTarget.setRestPulse(_tourDataSource.getRestPulse());
    _tourDataTarget.setCalories(extractedCalories);

    _tourDataTarget.setDpTolerance(_tourDataSource.getDpTolerance());

    if (isTourAltitude) {
        _tourDataTarget.altitudeSerie = extractAltitudeSerie;
    }
    if (isTourDistance) {
        _tourDataTarget.distanceSerie = extractDistanceSerie;
    }
    if (isTourCadence) {
        _tourDataTarget.cadenceSerie = extractCadenceSerie;
    }
    if (isTourLat) {
        _tourDataTarget.latitudeSerie = extractLatitudeSerie;
    }
    if (isTourLon) {
        _tourDataTarget.longitudeSerie = extractLongitudeSerie;
    }
    if (isTourPower) {
        _tourDataTarget.setPowerSerie(extractPowerSerie);
    }
    if (isTourPulse) {
        _tourDataTarget.pulseSerie = extractPulseSerie;
    }
    if (isTourSpeed) {
        _tourDataTarget.setSpeedSerie(extractSpeedSerie);
    }
    if (isTourTemperature) {
        _tourDataTarget.temperatureSerie = extractTemperatureSerie;
    }
    if (isTourTime) {
        _tourDataTarget.timeSerie = extractTimeSerie;
    }

    _tourDataTarget.setTemperatureScale(_tourDataSource.getTemperatureScale());

    _tourDataTarget.computeAltitudeUpDown();
    _tourDataTarget.computeTourDrivingTime();
    _tourDataTarget.computeComputedValues();

    // set person which is required to save a tour
    _tourDataTarget.setTourPerson(getSelectedPerson());

    /*
     * check size of the fields
     */
    if (_tourDataTarget.isValidForSave() == false) {
        return false;
    }

    TourManager.saveModifiedTour(_tourDataTarget);

    // check if time slices should be removed
    if (getStateSplitMethod().equals(STATE_EXTRACT_METHOD_REMOVE)) {

        TourManager.removeTimeSlices(_tourDataSource, _extractStartIndex, _extractEndIndex, true);

        _tourDataEditor.updateUI(_tourDataSource, true);

        TourManager.fireEvent(TourEventId.TOUR_CHANGED, new TourEvent(_tourDataSource));
    }

    return true;
}

From source file:net.tourbook.tour.DialogJoinTours.java

License:Open Source License

/**
 * Join the tours and create a new tour//www .j  a v  a  2s  .c o m
 */
private boolean joinTours() {

    final boolean isOriginalTime = getStateJoinMethod().equals(STATE_JOIN_METHOD_ORIGINAL);

    /**
     * number of slices, time series are already checked in ActionJoinTours
     */
    int joinedSliceCounter = 0;

    for (final TourData tourData : _selectedTours) {

        final int[] tourTimeSerie = tourData.timeSerie;
        final int[] tourDistanceSerie = tourData.distanceSerie;
        final double[] tourLatitudeSerie = tourData.latitudeSerie;

        final boolean isTourTime = (tourTimeSerie != null) && (tourTimeSerie.length > 0);
        final boolean isTourDistance = (tourDistanceSerie != null) && (tourDistanceSerie.length > 0);
        final boolean isTourLat = (tourLatitudeSerie != null) && (tourLatitudeSerie.length > 0);

        if (isTourTime) {
            joinedSliceCounter += tourTimeSerie.length;
        } else if (isTourDistance) {
            joinedSliceCounter += tourDistanceSerie.length;
        } else if (isTourLat) {
            joinedSliceCounter += tourLatitudeSerie.length;
        }
    }

    boolean isJoinAltitude = false;
    boolean isJoinDistance = false;
    boolean isJoinCadence = false;
    boolean isJoinLat = false;
    boolean isJoinLon = false;
    boolean isJoinPower = false;
    boolean isJoinPulse = false;
    boolean isJoinSpeed = false;
    //      boolean isJoinTemperature = false;
    boolean isJoinTime = false;

    final int[] joinedAltitudeSerie = new int[joinedSliceCounter];
    final int[] joinedCadenceSerie = new int[joinedSliceCounter];
    final int[] joinedDistanceSerie = new int[joinedSliceCounter];
    final double[] joinedLatitudeSerie = new double[joinedSliceCounter];
    final double[] joinedLongitudeSerie = new double[joinedSliceCounter];
    final int[] joinedPowerSerie = new int[joinedSliceCounter];
    final int[] joinedPulseSerie = new int[joinedSliceCounter];
    final int[] joinedSpeedSerie = new int[joinedSliceCounter];
    final int[] joinedTemperatureSerie = new int[joinedSliceCounter];
    final int[] joinedTimeSerie = new int[joinedSliceCounter];

    final StringBuilder joinedDescription = new StringBuilder();
    final HashSet<TourMarker> joinedTourMarker = new HashSet<TourMarker>();
    final ArrayList<TourWayPoint> joinedWayPoints = new ArrayList<TourWayPoint>();

    int joinedSerieIndex = 0;
    int joinedTourStartIndex = 0;
    int joinedTourStartDistance = 0;
    int joinedRecordingTime = 0;
    int joinedDrivingTime = 0;
    int joinedDistance = 0;
    int joinedCalories = 0;
    boolean isJoinedDistanceFromSensor = false;
    short joinedDeviceTimeInterval = -1;
    String joinedWeatherClouds = UI.EMPTY_STRING;
    String joinedWeather = UI.EMPTY_STRING;
    int joinedWeatherWindDir = 0;
    int joinedWeatherWindSpeed = 0;
    int joinedRestPulse = 0;
    int joinedTemperatureScale = 1;

    int relTourTime = 0;
    long relTourTimeOffset = 0;
    long absFirstTourStartTimeSec = 0;
    long absJoinedTourStartTimeSec = 0;
    DateTime joinedTourStart = null;

    boolean isFirstTour = true;

    /*
     * copy tour data series into joined data series
     */
    for (final TourData tourTourData : _selectedTours) {

        final int[] tourAltitudeSerie = tourTourData.altitudeSerie;
        final int[] tourCadenceSerie = tourTourData.cadenceSerie;
        final int[] tourDistanceSerie = tourTourData.distanceSerie;
        final double[] tourLatitudeSerie = tourTourData.latitudeSerie;
        final double[] tourLongitudeSerie = tourTourData.longitudeSerie;
        final int[] tourPulseSerie = tourTourData.pulseSerie;
        final int[] tourTemperatureSerie = tourTourData.temperatureSerie;
        final int[] tourTimeSerie = tourTourData.timeSerie;

        final boolean isTourAltitude = (tourAltitudeSerie != null) && (tourAltitudeSerie.length > 0);
        final boolean isTourCadence = (tourCadenceSerie != null) && (tourCadenceSerie.length > 0);
        final boolean isTourDistance = (tourDistanceSerie != null) && (tourDistanceSerie.length > 0);
        final boolean isTourLat = (tourLatitudeSerie != null) && (tourLatitudeSerie.length > 0);
        final boolean isTourLon = (tourLongitudeSerie != null) && (tourLongitudeSerie.length > 0);
        final boolean isTourPulse = (tourPulseSerie != null) && (tourPulseSerie.length > 0);
        final boolean isTourTemperature = (tourTemperatureSerie != null) && (tourTemperatureSerie.length > 0);
        final boolean isTourTime = (tourTimeSerie != null) && (tourTimeSerie.length > 0);

        /*
         * get speed/power data when it's from the device
         */
        int[] tourPowerSerie = null;
        int[] tourSpeedSerie = null;
        final boolean isTourPower = tourTourData.isPowerSerieFromDevice();
        final boolean isTourSpeed = tourTourData.isSpeedSerieFromDevice();
        if (isTourPower) {
            tourPowerSerie = tourTourData.getPowerSerie();
        }
        if (isTourSpeed) {
            tourSpeedSerie = tourTourData.getSpeedSerie();
        }

        /*
         * set tour time
         */
        final DateTime tourStartTime = new DateTime(tourTourData.getStartYear(), tourTourData.getStartMonth(),
                tourTourData.getStartDay(), tourTourData.getStartHour(), tourTourData.getStartMinute(),
                tourTourData.getStartSecond(), 0);

        if (isFirstTour) {

            // get start date/time

            if (isOriginalTime) {

                joinedTourStart = tourStartTime;

            } else {

                joinedTourStart = new DateTime(_dtTourDate.getYear(), _dtTourDate.getMonth() + 1,
                        _dtTourDate.getDay(), _dtTourTime.getHours(), _dtTourTime.getMinutes(),
                        _dtTourTime.getSeconds(), 0);
            }

            // tour start in absolute seconds
            absJoinedTourStartTimeSec = joinedTourStart.getMillis() / 1000;
            absFirstTourStartTimeSec = absJoinedTourStartTimeSec;

        } else {

            // get relative time offset

            if (isOriginalTime) {

                final DateTime tourStart = tourStartTime;

                final long absTourStartTimeSec = tourStart.getMillis() / 1000;

                // keep original time
                relTourTimeOffset = absTourStartTimeSec - absFirstTourStartTimeSec;

            } else {

                /*
                 * remove time gaps between tours, add relative time from the last tour and add
                 * 1 second for the start of the next tour
                 */
                relTourTimeOffset += relTourTime + 1;
            }
        }

        /*
         * get number of slices
         */
        int tourSliceCounter = 0;
        if (isTourTime) {
            tourSliceCounter = tourTimeSerie.length;
        } else if (isTourDistance) {
            tourSliceCounter = tourDistanceSerie.length;
        } else if (isTourLat) {
            tourSliceCounter = tourLatitudeSerie.length;
        }

        int relTourDistance = 0;

        /*
         * copy data series
         */
        for (int tourSerieIndex = 0; tourSerieIndex < tourSliceCounter; tourSerieIndex++) {

            if (isTourTime) {

                relTourTime = tourTimeSerie[tourSerieIndex];

                joinedTimeSerie[joinedSerieIndex] = (int) (relTourTimeOffset + relTourTime);

                isJoinTime = true;
            }

            if (isTourAltitude) {
                joinedAltitudeSerie[joinedSerieIndex] = tourAltitudeSerie[tourSerieIndex];
                isJoinAltitude = true;
            }
            if (isTourCadence) {
                joinedCadenceSerie[joinedSerieIndex] = tourCadenceSerie[tourSerieIndex];
                isJoinCadence = true;
            }

            if (isTourDistance) {

                relTourDistance = tourDistanceSerie[tourSerieIndex];

                joinedDistanceSerie[joinedSerieIndex] = joinedTourStartDistance + relTourDistance;
                isJoinDistance = true;
            }

            if (isTourPulse) {
                joinedPulseSerie[joinedSerieIndex] = tourPulseSerie[tourSerieIndex];
                isJoinPulse = true;
            }
            if (isTourLat) {
                joinedLatitudeSerie[joinedSerieIndex] = tourLatitudeSerie[tourSerieIndex];
                isJoinLat = true;
            }
            if (isTourLon) {
                joinedLongitudeSerie[joinedSerieIndex] = tourLongitudeSerie[tourSerieIndex];
                isJoinLon = true;
            }

            if (isTourTemperature) {
                joinedTemperatureSerie[joinedSerieIndex] = tourTemperatureSerie[tourSerieIndex];
            } else {
                // set temperature to temporarily value
                joinedTemperatureSerie[joinedSerieIndex] = Integer.MIN_VALUE;
            }

            if (isTourPower) {
                joinedPowerSerie[joinedSerieIndex] = tourPowerSerie[tourSerieIndex];
                isJoinPower = true;
            }
            if (isTourSpeed) {
                joinedSpeedSerie[joinedSerieIndex] = tourSpeedSerie[tourSerieIndex];
                isJoinSpeed = true;
            }

            joinedSerieIndex++;
        }

        final Set<TourMarker> tourMarkers = tourTourData.getTourMarkers();

        if (_chkIncludeMarkerWaypoints.getSelection()) {

            /*
             * copy tour markers
             */
            for (final TourMarker tourMarker : tourMarkers) {

                final TourMarker clonedMarker = tourMarker.clone(_joinedTourData);

                int joinMarkerIndex = joinedTourStartIndex + clonedMarker.getSerieIndex();
                if (joinMarkerIndex >= joinedSliceCounter) {
                    joinMarkerIndex = joinedSliceCounter - 1;
                }

                // adjust marker position, position is relativ to the tour start
                clonedMarker.setSerieIndex(joinMarkerIndex);

                if (isJoinTime) {
                    clonedMarker.setTime(joinedTimeSerie[joinMarkerIndex]);
                }
                if (isJoinDistance) {
                    clonedMarker.setDistance(joinedDistanceSerie[joinMarkerIndex]);
                }

                joinedTourMarker.add(clonedMarker);
            }

            /*
             * copy way points
             */
            for (final TourWayPoint wayPoint : tourTourData.getTourWayPoints()) {
                joinedWayPoints.add((TourWayPoint) wayPoint.clone());
            }
        }

        if (_chkCreateTourMarker.getSelection()) {

            /*
             * create a tour marker
             */

            // first find a free marker position in the tour
            int tourMarkerIndex = -1;
            for (int tourSerieIndex = 0; tourSerieIndex < tourSliceCounter; tourSerieIndex++) {

                boolean isIndexAvailable = true;

                // check if a marker occupies the current index
                for (final TourMarker tourMarker : tourMarkers) {
                    if (tourMarker.getSerieIndex() == tourSerieIndex) {
                        isIndexAvailable = false;
                        break;
                    }
                }

                if (isIndexAvailable) {
                    // free index was found
                    tourMarkerIndex = tourSerieIndex;
                    break;
                }
            }

            if (tourMarkerIndex != -1) {

                // create tour marker label
                final String stateTourMarker = getStateTourMarker();
                final long tourStartTimeMS = tourStartTime.getMillis();

                String markerLabel = UI.EMPTY_STRING;

                if (stateTourMarker.equals(STATE_MARKER_TYPE_SMALL)) {
                    markerLabel = _dtFormatterShort.print(tourStartTimeMS);
                } else if (stateTourMarker.equals(STATE_MARKER_TYPE_MEDIUM)) {
                    markerLabel = _dtFormatterMedium.print(tourStartTimeMS);
                } else if (stateTourMarker.equals(STATE_MARKER_TYPE_LARGE)) {
                    markerLabel = _dtFormatterFull.print(tourStartTimeMS);
                }

                final int joinMarkerIndex = joinedTourStartIndex + tourMarkerIndex;

                final TourMarker tourMarker = new TourMarker(_joinedTourData, ChartLabel.MARKER_TYPE_CUSTOM);

                tourMarker.setSerieIndex(joinMarkerIndex);
                tourMarker.setLabel(markerLabel);
                tourMarker.setVisualPosition(ChartLabel.VISUAL_VERTICAL_ABOVE_GRAPH);

                if (isJoinTime) {
                    tourMarker.setTime(joinedTimeSerie[joinMarkerIndex]);
                }
                if (isJoinDistance) {
                    tourMarker.setDistance(joinedDistanceSerie[joinMarkerIndex]);
                }

                joinedTourMarker.add(tourMarker);
            }
        }

        /*
         * create description
         */
        if (_chkIncludeDescription.getSelection()) {

            final String tourDescription = tourTourData.getTourDescription();

            if (joinedDescription.length() > 0) {
                // set space between two tours
                joinedDescription.append(UI.NEW_LINE2);
            }

            joinedDescription.append(Messages.Dialog_JoinTours_Label_Tour);
            joinedDescription.append(TourManager.getTourTitleDetailed(tourTourData));
            if (tourDescription.length() > 0) {
                joinedDescription.append(UI.NEW_LINE);
                joinedDescription.append(tourDescription);
            }
        }

        /*
         * other tour values
         */
        if (isFirstTour) {
            isJoinedDistanceFromSensor = tourTourData.isDistanceSensorPresent();
            joinedDeviceTimeInterval = tourTourData.getDeviceTimeInterval();

            joinedWeather = tourTourData.getWeather();
            joinedWeatherClouds = tourTourData.getWeatherClouds();
            joinedWeatherWindDir = tourTourData.getWeatherWindDir();
            joinedWeatherWindSpeed = tourTourData.getWeatherWindSpeed();

            joinedRestPulse = tourTourData.getRestPulse();
            joinedTemperatureScale = tourTourData.getTemperatureScale();

        } else {
            if (isJoinedDistanceFromSensor && tourTourData.isDistanceSensorPresent()) {
                // keep TRUE state
            } else {
                isJoinedDistanceFromSensor = false;
            }
            if (joinedDeviceTimeInterval == tourTourData.getDeviceTimeInterval()) {
                // keep value
            } else {
                joinedDeviceTimeInterval = -1;
            }
        }

        /*
         * summarize other fields
         */
        tourTourData.computeTourDrivingTime();

        joinedRecordingTime += tourTourData.getTourRecordingTime();
        joinedDrivingTime += tourTourData.getTourDrivingTime();

        joinedDistance += tourTourData.getTourDistance();
        joinedCalories += tourTourData.getCalories();

        /*
         * init next tour
         */
        isFirstTour = false;
        joinedTourStartIndex = joinedSerieIndex;
        joinedTourStartDistance += relTourDistance;
    }

    /*
     * setup tour data
     */
    _joinedTourData.setStartHour((short) joinedTourStart.getHourOfDay());
    _joinedTourData.setStartMinute((short) joinedTourStart.getMinuteOfHour());
    _joinedTourData.setStartSecond((short) joinedTourStart.getSecondOfMinute());
    _joinedTourData.setStartYear((short) joinedTourStart.getYear());
    _joinedTourData.setStartMonth((short) joinedTourStart.getMonthOfYear());
    _joinedTourData.setStartDay((short) joinedTourStart.getDayOfMonth());

    _joinedTourData.setWeek(joinedTourStart);

    // tour id must be created after the tour date/time is set
    _joinedTourData.createTourId();

    _joinedTourData.setTourTitle(_txtTourTitle.getText());
    _joinedTourData.setTourDescription(joinedDescription.toString());

    _joinedTourData.setTourMarkers(joinedTourMarker);
    _joinedTourData.setWayPoints(joinedWayPoints);
    _joinedTourData.setDeviceName(Messages.Dialog_JoinTours_Label_DeviceName);

    _joinedTourData.setIsDistanceFromSensor(isJoinedDistanceFromSensor);
    _joinedTourData.setDeviceTimeInterval(joinedDeviceTimeInterval);

    _joinedTourData.setCalories(joinedCalories);
    _joinedTourData.setRestPulse(joinedRestPulse);

    _joinedTourData.setWeather(joinedWeather);
    _joinedTourData.setWeatherClouds(joinedWeatherClouds);
    _joinedTourData.setWeatherWindDir(joinedWeatherWindDir);
    _joinedTourData.setWeatherWindSpeed(joinedWeatherWindSpeed);

    _joinedTourData.setTourRecordingTime(joinedRecordingTime);
    _joinedTourData.setTourDrivingTime(joinedDrivingTime);
    _joinedTourData.setTourDistance(joinedDistance);

    // !! tour type and tour tags are already set !!

    if (isJoinAltitude) {
        _joinedTourData.altitudeSerie = joinedAltitudeSerie;
    }
    if (isJoinDistance) {
        _joinedTourData.distanceSerie = joinedDistanceSerie;
    }
    if (isJoinCadence) {
        _joinedTourData.cadenceSerie = joinedCadenceSerie;
    }
    if (isJoinLat) {
        _joinedTourData.latitudeSerie = joinedLatitudeSerie;
    }
    if (isJoinLon) {
        _joinedTourData.longitudeSerie = joinedLongitudeSerie;
    }
    if (isJoinPower) {
        _joinedTourData.setPowerSerie(joinedPowerSerie);
    }
    if (isJoinPulse) {
        _joinedTourData.pulseSerie = joinedPulseSerie;
    }
    if (isJoinSpeed) {
        _joinedTourData.setSpeedSerie(joinedSpeedSerie);
    }

    _joinedTourData.temperatureSerie = joinedTemperatureSerie;
    _joinedTourData.setTemperatureScale(joinedTemperatureScale);

    if (isJoinTime) {
        _joinedTourData.timeSerie = joinedTimeSerie;
    }

    _joinedTourData.computeAltitudeUpDown();
    _joinedTourData.computeComputedValues();

    // set person which is required to save a tour
    _joinedTourData.setTourPerson(getSelectedPerson());

    /*
     * check size of the fields
     */
    if (_joinedTourData.isValidForSave() == false) {
        return false;
    }

    /*
     * TourData.computeComputedValues() creates speed data serie which must be removed that
     * cleanupDataSeries() works correctly
     */
    _joinedTourData.setSpeedSerie(null);

    _joinedTourData.cleanupDataSeries();

    _joinedTourData = TourManager.saveModifiedTour(_joinedTourData);

    return true;
}

From source file:nl.mpi.oai.harvester.cycle.EndpointAdapter.java

License:Open Source License

@Override
public void doneHarvesting(Boolean done) {

    /* Store the current date in a XMLGregorianCalendar object. Note: at
       the XML level, the date will be represented in ISO8601 format.
     *//*from w ww  . j a  v a  2 s . c  o  m*/
    XMLGregorianCalendar xmlGregorianCalendar;

    try {
        // get current time in the UTC zone
        DateTime dateTime = new DateTime(DateTimeZone.UTC);

        // create XML calendar
        xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar();

        // set the date related fields
        xmlGregorianCalendar.setDay(dateTime.getDayOfMonth());
        xmlGregorianCalendar.setMonth(dateTime.getMonthOfYear());
        xmlGregorianCalendar.setYear(dateTime.getYear());

        // set the calendar to UTC, this zone sets off 0 minutes from UTC
        xmlGregorianCalendar.setTimezone(0);

        // set the time related fields
        xmlGregorianCalendar.setHour(dateTime.getHourOfDay());
        xmlGregorianCalendar.setMinute(dateTime.getMinuteOfHour());
        xmlGregorianCalendar.setSecond(dateTime.getSecondOfMinute());

        // represent milliseconds as a fraction of a second
        BigDecimal s = BigDecimal.valueOf(dateTime.getMillisOfSecond());
        s = s.divide(BigDecimal.valueOf(1000));

        xmlGregorianCalendar.setFractionalSecond(s);

        // set the property representing the date of the attempt
        endpointType.setAttempted(xmlGregorianCalendar);

        if (done) {
            // successful attempt, also set attribute representing this
            endpointType.setHarvested(xmlGregorianCalendar);
        }

        xmlOverview.save();

    } catch (DatatypeConfigurationException e) {
        // report the error, we cannot continue
        Logger.getLogger(EndpointAdapter.class.getName()).log(Level.SEVERE, null, endpointType);
    }
}

From source file:op.care.dfn.PnlDFN.java

License:Open Source License

private java.util.List<Component> addCommands() {

    java.util.List<Component> list = new ArrayList<Component>();

    /***/* ww w.jav a 2 s  .  c o  m*/
     *      _     _            _       _     _
     *     | |__ | |_ _ __    / \   __| | __| |
     *     | '_ \| __| '_ \  / _ \ / _` |/ _` |
     *     | |_) | |_| | | |/ ___ \ (_| | (_| |
     *     |_.__/ \__|_| |_/_/   \_\__,_|\__,_|
     *
     */
    if (OPDE.getAppInfo().isAllowedTo(InternalClassACL.UPDATE, internalClassID)) {

        final JideButton btnAdd = GUITools.createHyperlinkButton(SYSTools.xx("nursingrecords.dfn.btnadd"),
                SYSConst.icon22add, null);
        btnAdd.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                if (!resident.isActive()) {
                    OPDE.getDisplayManager()
                            .addSubMessage(new DisplayMessage("misc.msg.cantChangeInactiveResident"));
                    return;
                }

                final JidePopup popup = new JidePopup();
                popup.setMovable(false);
                PnlSelectIntervention pnl = new PnlSelectIntervention(new Closure() {
                    @Override
                    public void execute(Object o) {
                        popup.hidePopup();
                        if (o != null) {
                            Object[] objects = (Object[]) o;
                            EntityManager em = OPDE.createEM();
                            try {
                                em.getTransaction().begin();
                                em.lock(em.merge(resident), LockModeType.OPTIMISTIC);

                                for (Object obj : objects) {
                                    Intervention intervention = em.merge((Intervention) obj);
                                    DFN dfn = em.merge(new DFN(resident, intervention));

                                    // Set Target and Actual according to the setting of JDCDate
                                    DateTime now = new DateTime();
                                    DateMidnight onDemandPIT = new DateMidnight(jdcDate.getDate());
                                    DateTime newDateTime = onDemandPIT.toDateTime()
                                            .plusHours(now.getHourOfDay()).plusMinutes(now.getMinuteOfHour())
                                            .plusSeconds(now.getSecondOfMinute());
                                    dfn.setSoll(newDateTime.toDate());
                                    dfn.setIst(newDateTime.toDate());

                                    CollapsiblePane cp1 = createCP4(dfn);
                                    synchronized (mapDFN2Pane) {
                                        mapDFN2Pane.put(dfn, cp1);
                                    }
                                    synchronized (mapShift2DFN) {
                                        mapShift2DFN.get(dfn.getShift()).add(dfn);
                                    }
                                }

                                em.getTransaction().commit();

                                CollapsiblePane cp2 = createCP4(DFNTools.SHIFT_ON_DEMAND);
                                synchronized (mapShift2Pane) {
                                    mapShift2Pane.put(DFNTools.SHIFT_ON_DEMAND, cp2);
                                }
                                buildPanel(false);
                                try {
                                    synchronized (mapShift2Pane) {
                                        mapShift2Pane.get(DFNTools.SHIFT_ON_DEMAND).setCollapsed(false);
                                    }
                                } catch (PropertyVetoException e) {
                                    OPDE.debug(e);
                                }

                            } catch (OptimisticLockException ole) {
                                OPDE.warn(ole);
                                if (em.getTransaction().isActive()) {
                                    em.getTransaction().rollback();
                                }
                                if (ole.getMessage().indexOf("Class> entity.info.Resident") > -1) {
                                    OPDE.getMainframe().emptyFrame();
                                    OPDE.getMainframe().afterLogin();
                                }
                                OPDE.getDisplayManager().addSubMessage(DisplayManager.getLockMessage());
                            } catch (Exception e) {
                                if (em.getTransaction().isActive()) {
                                    em.getTransaction().rollback();
                                }
                                OPDE.fatal(e);
                            } finally {
                                em.close();
                            }
                        }
                    }
                });
                popup.getContentPane().setLayout(new BoxLayout(popup.getContentPane(), BoxLayout.LINE_AXIS));
                popup.getContentPane().add(pnl);
                popup.setOwner(btnAdd);
                popup.removeExcludedComponent(pnl);
                popup.setDefaultFocusComponent(pnl);
                GUITools.showPopup(popup, SwingConstants.NORTH);
            }
        });
        list.add(btnAdd);

    }

    final JideButton printPrescription = GUITools.createHyperlinkButton("nursingrecords.dfn.print",
            SYSConst.icon22print2, new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent actionEvent) {

                    String html = "";

                    synchronized (mapShift2DFN) {
                        html += "<h1 id=\"fonth1\" >" + ResidentTools.getFullName(resident) + "</h1>";
                        html += SYSConst.html_h2(SYSTools.xx("nursingrecords.bhp") + ": "
                                + SYSConst.html_bold(DateFormat.getDateInstance().format(jdcDate.getDate())));

                        for (Byte shift : new Byte[] { DFNTools.SHIFT_ON_DEMAND, DFNTools.SHIFT_VERY_EARLY,
                                DFNTools.SHIFT_EARLY, DFNTools.SHIFT_LATE, DFNTools.SHIFT_VERY_LATE }) {
                            html += DFNTools.getDFNsAsHTMLtable(mapShift2DFN.get(shift));
                        }
                    }

                    SYSFilesTools.print(html, true);
                }
            });
    list.add(printPrescription);
    return list;
}

From source file:op.tools.SYSCalendar.java

License:Open Source License

/**
 * determines to which timeofday code a given date object belongs. The settings in SYSProps are taken into account.
 * or in short: it answers a question like "is 0800h early, noon or early in the morning ?"
 *
 * @param date/*from w w w.  ja va  2  s .c  om*/
 * @return timecode
 */
public static byte whatTimeIDIs(Date date) {
    byte timeid;

    DateTimeFormatter parser = DateTimeFormat.forPattern("HH:mm");

    DateTime early_in_the_morning = parser
            .parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_EARLY_IN_THE_MORNING));
    DateTime morning = parser.parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_MORNING));
    DateTime noon = parser.parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_NOON));
    DateTime afternoon = parser.parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_AFTERNOON));
    DateTime evening = parser.parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_EVENING));
    DateTime late_at_night = parser.parseDateTime(OPDE.getProps().getProperty(DFNTools.STRING_LATE_AT_NIGHT));

    Period period_early_in_the_morning = new Period(early_in_the_morning.getHourOfDay(),
            early_in_the_morning.getMinuteOfHour(), early_in_the_morning.getSecondOfMinute(),
            early_in_the_morning.getMillisOfSecond());
    Period period_morning = new Period(morning.getHourOfDay(), morning.getMinuteOfHour(),
            morning.getSecondOfMinute(), morning.getMillisOfSecond());
    Period period_noon = new Period(noon.getHourOfDay(), noon.getMinuteOfHour(), noon.getSecondOfMinute(),
            noon.getMillisOfSecond());
    Period period_afternoon = new Period(afternoon.getHourOfDay(), afternoon.getMinuteOfHour(),
            afternoon.getSecondOfMinute(), afternoon.getMillisOfSecond());
    Period period_evening = new Period(evening.getHourOfDay(), evening.getMinuteOfHour(),
            evening.getSecondOfMinute(), evening.getMillisOfSecond());
    Period period_late_at_night = new Period(late_at_night.getHourOfDay(), late_at_night.getMinuteOfHour(),
            late_at_night.getSecondOfMinute(), late_at_night.getMillisOfSecond());

    DateTime ref = new DateTime(date);
    DateTime eitm = new DateMidnight(date).toDateTime().plus(period_early_in_the_morning);
    DateTime m = new DateMidnight(date).toDateTime().plus(period_morning);
    DateTime n = new DateMidnight(date).toDateTime().plus(period_noon);
    DateTime a = new DateMidnight(date).toDateTime().plus(period_afternoon);
    DateTime e = new DateMidnight(date).toDateTime().plus(period_evening);
    DateTime lan = new DateMidnight(date).toDateTime().plus(period_late_at_night);

    if (eitm.compareTo(ref) <= 0 && ref.compareTo(m) < 0) {
        timeid = DFNTools.BYTE_EARLY_IN_THE_MORNING;
    } else if (m.compareTo(ref) <= 0 && ref.compareTo(n) < 0) {
        timeid = DFNTools.BYTE_MORNING;
    } else if (n.compareTo(ref) <= 0 && ref.compareTo(a) < 0) {
        timeid = DFNTools.BYTE_NOON;
    } else if (a.compareTo(ref) <= 0 && ref.compareTo(e) < 0) {
        timeid = DFNTools.BYTE_AFTERNOON;
    } else if (e.compareTo(ref) <= 0 && ref.compareTo(lan) < 0) {
        timeid = DFNTools.BYTE_EVENING;
    } else {
        timeid = DFNTools.BYTE_LATE_AT_NIGHT;
    }
    return timeid;
}

From source file:org.adl.datamodels.datatypes.DateTimeValidatorImpl.java

/**
 * Compares two valid data model elements for equality.
 * /* w  w  w  .  j  a  v a2  s .  c  o m*/
 * @param iFirst  The first value being compared.
 * 
 * @param iSecond The second value being compared.
 * 
 * @param iDelimiters The common set of delimiters associated with the
 * values being compared.
 * 
 * @return Returns <code>true</code> if the two values are equal, otherwise
 *         <code>false</code>.
 */
@Override
public boolean compare(String iFirst, String iSecond, List<DMDelimiter> iDelimiters) {

    boolean equal = true;

    DateTimeFormatter dtp = ISODateTimeFormat.dateTimeParser();

    try {
        // Parse the first string and remove the sub-seconds
        DateTime dt1 = dtp.parseDateTime(iFirst);
        dt1 = new DateTime(dt1.getYear(), dt1.getMonthOfYear(), dt1.getDayOfMonth(), dt1.getHourOfDay(),
                dt1.getMinuteOfHour(), dt1.getSecondOfMinute(), 0);

        // Parse the second string and remove the sub-seconds
        DateTime dt2 = dtp.parseDateTime(iSecond);
        dt2 = new DateTime(dt2.getYear(), dt2.getMonthOfYear(), dt2.getDayOfMonth(), dt2.getHourOfDay(),
                dt2.getMinuteOfHour(), dt2.getSecondOfMinute(), 0);

        equal = dt1.equals(dt2);
    } catch (Exception e) {
        // String format error -- these cannot be equal
        equal = false;
    }

    return equal;
}

From source file:org.aludratest.cloud.web.report.ResourceReportUtil.java

License:Apache License

private static JavaScriptObject createTimeEntry(DateTime time, int activeResources) {
    JavaScriptObject result = new JavaScriptObject();
    time = time.toDateTime(DateTimeZone.UTC);

    // convert time to JavaScript UTC time
    StringBuilder sbDateTime = new StringBuilder();
    sbDateTime.append("Date.UTC(");
    sbDateTime.append(time.getYear()).append(", ");
    sbDateTime.append(time.getMonthOfYear() - 1).append(", ");
    sbDateTime.append(time.getDayOfMonth()).append(", ");
    sbDateTime.append(time.getHourOfDay()).append(", ");
    sbDateTime.append(time.getMinuteOfHour()).append(", ");
    sbDateTime.append(time.getSecondOfMinute()).append(", ");
    sbDateTime.append(time.getMillisOfSecond()).append(")");

    result.set("x", new JavaScriptCodeFragment(sbDateTime.toString()));
    result.set("y", new JavaScriptCodeFragment("" + activeResources));

    return result;
}

From source file:org.apache.beam.sdk.io.jdbc.JdbcUtil.java

License:Apache License

private static Calendar getDateOrTimeOnly(DateTime dateTime, boolean wantDateOnly) {
    Calendar cal = Calendar.getInstance();
    cal.setTimeZone(TimeZone.getTimeZone(dateTime.getZone().getID()));

    if (wantDateOnly) { // return date only
        cal.set(Calendar.YEAR, dateTime.getYear());
        cal.set(Calendar.MONTH, dateTime.getMonthOfYear() - 1);
        cal.set(Calendar.DATE, dateTime.getDayOfMonth());

        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
    } else { // return time only
        cal.set(Calendar.YEAR, 1970);
        cal.set(Calendar.MONTH, Calendar.JANUARY);
        cal.set(Calendar.DATE, 1);

        cal.set(Calendar.HOUR_OF_DAY, dateTime.getHourOfDay());
        cal.set(Calendar.MINUTE, dateTime.getMinuteOfHour());
        cal.set(Calendar.SECOND, dateTime.getSecondOfMinute());
        cal.set(Calendar.MILLISECOND, dateTime.getMillisOfSecond());
    }//from w ww .jav a2s  . c  o m

    return cal;
}

From source file:org.apache.isis.applib.value.Time.java

License:Apache License

/**
 * Create a Time object for storing a time with the time set to the
 * specified time of the Joda Time DateTime object.
 */// www. j av a  2  s .  c om
public Time(final DateTime dateTime) {
    this.time = newDateTime(dateTime.getHourOfDay(), dateTime.getMinuteOfHour(), dateTime.getSecondOfMinute());
}