Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
5c906f6b
by tchemit at 2019-07-23T14:15:49Z
-
55df1b79
by tchemit at 2019-07-23T14:15:50Z
-
c351b54d
by tchemit at 2019-07-23T14:15:50Z
-
285711c2
by tchemit at 2019-07-23T14:16:10Z
16 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/TripLonglineLandingUIHandler.java
- dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SampleLogbookDto.java
- + dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SampleLogbookReference.java
- dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
- dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java
- dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObserveDecorator.java
- dto/src/main/java/fr/ird/observe/dto/referential/common/PersonReference.java
- observe-i18n/src/main/i18n/translations/observe_en_GB.properties
- observe-i18n/src/main/i18n/translations/observe_es_ES.properties
- observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
- services/src/main/i18n/getters/java.getter
- services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingEngine.java
- services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResultItem.java
- services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResultItemDecorator.java
- validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartLogbookDto-update-error-validation.xml
- validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartLogbookDto-update-warning-validation.xml
Changes:
| ... | ... | @@ -32,6 +32,8 @@ import fr.ird.observe.client.ui.content.api.ui.ObserveLayoutFocusTraversalPolicy |
| 32 | 32 |
import fr.ird.observe.dto.data.ll.landing.LandingLonglineDto;
|
| 33 | 33 |
import fr.ird.observe.dto.data.ll.landing.LandingLonglineReference;
|
| 34 | 34 |
import fr.ird.observe.dto.form.Form;
|
| 35 |
+import fr.ird.observe.dto.referential.common.PersonDto;
|
|
| 36 |
+import fr.ird.observe.dto.referential.common.PersonReference;
|
|
| 35 | 37 |
import fr.ird.observe.dto.referential.common.VesselDto;
|
| 36 | 38 |
import fr.ird.observe.dto.referential.common.VesselReference;
|
| 37 | 39 |
import fr.ird.observe.dto.referential.ll.landing.DataSourceReference;
|
| ... | ... | @@ -119,6 +121,7 @@ class TripLonglineLandingUIHandler extends ContentOpenableUIHandler<LandingLongl |
| 119 | 121 |
|
| 120 | 122 |
@Override
|
| 121 | 123 |
protected void onAfterInitAddReferentialFilters(ContentUIReferenceCache referenceCache) {
|
| 124 |
+ referenceCache.addReferentialFilter(LandingLonglineDto.PROPERTY_PERSON, (ReferentialReferencesFilter<PersonDto, PersonReference>) PersonReference::filterDataSourceReferences);
|
|
| 122 | 125 |
referenceCache.addReferentialFilter(LandingLonglineDto.PROPERTY_VESSEL, (ReferentialReferencesFilter<VesselDto, VesselReference>) incomingReferences -> incomingReferences.stream().filter(e -> LANDING_VESSEL_TYPE_IDS.contains(e.getVesselTypeId())).collect(Collectors.toList()));
|
| 123 | 126 |
}
|
| 124 | 127 |
|
| ... | ... | @@ -22,11 +22,13 @@ package fr.ird.observe.dto.data.ll.logbook; |
| 22 | 22 |
* #L%
|
| 23 | 23 |
*/
|
| 24 | 24 |
|
| 25 |
+import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
|
|
| 25 | 26 |
import org.nuiton.util.DateUtil;
|
| 26 | 27 |
|
| 27 | 28 |
import java.util.Date;
|
| 28 | 29 |
import java.util.List;
|
| 29 | 30 |
|
| 31 |
+@GenerateJavaBeanDefinition(types = {"fr.ird.observe.dto.data.ll.logbook.SampleLogbookDto"})
|
|
| 30 | 32 |
public class SampleLogbookDto extends GeneratedSampleLogbookDto {
|
| 31 | 33 |
|
| 32 | 34 |
public static final String PROPERTY_DATE = "date";
|
| ... | ... | @@ -55,6 +57,10 @@ public class SampleLogbookDto extends GeneratedSampleLogbookDto { |
| 55 | 57 |
}
|
| 56 | 58 |
}
|
| 57 | 59 |
|
| 60 |
+ public String getCoordinateStr() {
|
|
| 61 |
+ return String.format("(%s°;%s°)", latitude, longitude);
|
|
| 62 |
+ }
|
|
| 63 |
+ |
|
| 58 | 64 |
public void setTimeStamp(Date timeStamp) {
|
| 59 | 65 |
Date oldDate = getDate();
|
| 60 | 66 |
Date oldTime = getTime();
|
| 1 |
+package fr.ird.observe.dto.data.ll.logbook;
|
|
| 2 |
+ |
|
| 3 |
+import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
|
|
| 4 |
+ |
|
| 5 |
+/*-
|
|
| 6 |
+ * #%L
|
|
| 7 |
+ * ObServe :: Dto
|
|
| 8 |
+ * %%
|
|
| 9 |
+ * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
|
|
| 10 |
+ * %%
|
|
| 11 |
+ * This program is free software: you can redistribute it and/or modify
|
|
| 12 |
+ * it under the terms of the GNU General Public License as
|
|
| 13 |
+ * published by the Free Software Foundation, either version 3 of the
|
|
| 14 |
+ * License, or (at your option) any later version.
|
|
| 15 |
+ *
|
|
| 16 |
+ * This program is distributed in the hope that it will be useful,
|
|
| 17 |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
| 18 |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
| 19 |
+ * GNU General Public License for more details.
|
|
| 20 |
+ *
|
|
| 21 |
+ * You should have received a copy of the GNU General Public
|
|
| 22 |
+ * License along with this program. If not, see
|
|
| 23 |
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
|
|
| 24 |
+ * #L%
|
|
| 25 |
+ */
|
|
| 26 |
+@GenerateJavaBeanDefinition(types = {"fr.ird.observe.dto.data.ll.logbook.SampleLogbookReference"})
|
|
| 27 |
+public class SampleLogbookReference extends GeneratedSampleLogbookReference {
|
|
| 28 |
+ |
|
| 29 |
+ public SampleLogbookReference(fr.ird.observe.dto.reference.DtoReferenceAware dto, java.util.Date timeStamp, java.lang.Float latitude, java.lang.Float longitude) {
|
|
| 30 |
+ super(dto, timeStamp, latitude, longitude);
|
|
| 31 |
+ }
|
|
| 32 |
+ |
|
| 33 |
+ public String getCoordinateStr() {
|
|
| 34 |
+ return String.format("(%s°;%s°)", getLatitude(), getLongitude());
|
|
| 35 |
+ }
|
|
| 36 |
+}
|
| ... | ... | @@ -386,8 +386,8 @@ public class DecoratorService extends DecoratorProvider { |
| 386 | 386 |
@Override
|
| 387 | 387 |
public void initLlLogbookSampleLogbookDto() {
|
| 388 | 388 |
registerDataAndDataReferenceDecorator(SampleLogbookDto.class, SampleLogbookReference.class,
|
| 389 |
- "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${latitude}$s##${longitude}$s",
|
|
| 390 |
- "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${latitude}$s##${longitude}$s",
|
|
| 389 |
+ "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${coordinateStr}$s",
|
|
| 390 |
+ "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${coordinateStr}$s",
|
|
| 391 | 391 |
" - ");
|
| 392 | 392 |
}
|
| 393 | 393 |
|
| ... | ... | @@ -114,6 +114,8 @@ public class ObserveI18nLabelsBuilder extends BeanPropertyI18nKeyProducerSupport |
| 114 | 114 |
.put("sizeMeasureTypeCode", "sizeMeasureType")
|
| 115 | 115 |
.put("inputSizeMeasureTypeCode", "inputSizeMeasureType")
|
| 116 | 116 |
.put("outputSizeMeasureTypeCode", "outputSizeMeasureType")
|
| 117 |
+ .put("computedTimeStr", "computedTime")
|
|
| 118 |
+ .put("coordinateStr", "coordinate")
|
|
| 117 | 119 |
.build();
|
| 118 | 120 |
}
|
| 119 | 121 |
|
| ... | ... | @@ -24,8 +24,8 @@ package fr.ird.observe.dto.decoration.decorators; |
| 24 | 24 |
import fr.ird.observe.dto.reference.DtoReference;
|
| 25 | 25 |
import org.apache.commons.jxpath.JXPathContext;
|
| 26 | 26 |
import org.apache.commons.lang3.StringUtils;
|
| 27 |
-import org.apache.logging.log4j.Logger;
|
|
| 28 | 27 |
import org.apache.logging.log4j.LogManager;
|
| 28 |
+import org.apache.logging.log4j.Logger;
|
|
| 29 | 29 |
import org.nuiton.decorator.MultiJXPathDecorator;
|
| 30 | 30 |
|
| 31 | 31 |
import java.io.Serializable;
|
| ... | ... | @@ -115,6 +115,8 @@ public class ObserveDecorator<E> extends MultiJXPathDecorator<E> implements Clon |
| 115 | 115 |
String lastToken = tokens[tokens.length - 1];
|
| 116 | 116 |
if (referenceBean.getPropertyNames().contains(lastToken)) {
|
| 117 | 117 |
value = referenceBean.getPropertyValue(lastToken);
|
| 118 |
+ } else {
|
|
| 119 |
+ value = referenceBean.get(lastToken);
|
|
| 118 | 120 |
}
|
| 119 | 121 |
|
| 120 | 122 |
return value;
|
| ... | ... | @@ -46,6 +46,10 @@ public class PersonReference extends GeneratedPersonReference { |
| 46 | 46 |
return incoming.stream().filter(PersonReference::isDataEntryOperator).collect(Collectors.toList());
|
| 47 | 47 |
}
|
| 48 | 48 |
|
| 49 |
+public static List<PersonReference> filterDataSourceReferences(Collection<PersonReference> incoming) {
|
|
| 50 |
+ return incoming.stream().filter(PersonReference::isDataSource).collect(Collectors.toList());
|
|
| 51 |
+ }
|
|
| 52 |
+ |
|
| 49 | 53 |
public String getLabel() {
|
| 50 | 54 |
return getFirstName() + " " + getLastName();
|
| 51 | 55 |
}
|
| ... | ... | @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Comment |
| 468 | 468 |
observe.common.ActivityLonglineObsSensorUsedDto.comment=Comment
|
| 469 | 469 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km)
|
| 470 | 470 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms)
|
| 471 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time (minutes)
|
|
| 472 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time (%s minutes)
|
|
| 471 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time shift (days\:hours\:minutes)
|
|
| 472 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=after
|
|
| 473 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=before
|
|
| 474 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Same date - time
|
|
| 475 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time shift (%s)
|
|
| 473 | 476 |
observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Observed activity
|
| 474 | 477 |
observe.common.ActivityLonglinePairingResultItemDto.type=Observed activity
|
| 475 | 478 |
observe.common.ActivityObsDto.action.goToOpen.short=Observations - Open activity
|
| ... | ... | @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Comentarios |
| 468 | 468 |
observe.common.ActivityLonglineObsSensorUsedDto.comment=Comentarios
|
| 469 | 469 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km) \#TODO
|
| 470 | 470 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms) \#TODO
|
| 471 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time (minutes) \#TODO
|
|
| 472 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time (%s minutes) \#TODO
|
|
| 471 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time shift (days\:hours\:minutes) \#TODO
|
|
| 472 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=after \#TODO
|
|
| 473 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=before \#TODO
|
|
| 474 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Same date - time \#TODO
|
|
| 475 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time shift (%s) \#TODO
|
|
| 473 | 476 |
observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Observed activity \#TODO
|
| 474 | 477 |
observe.common.ActivityLonglinePairingResultItemDto.type=Observed activity \#TODO
|
| 475 | 478 |
observe.common.ActivityObsDto.action.goToOpen.short=Observations - Open activity \#TODO
|
| ... | ... | @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Commentaire |
| 468 | 468 |
observe.common.ActivityLonglineObsSensorUsedDto.comment=Commentaire
|
| 469 | 469 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km)
|
| 470 | 470 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms)
|
| 471 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTime=Temps (minutes)
|
|
| 472 |
-observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Temps (%s minutes)
|
|
| 471 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTime=Écart de temps (jours\:heures\:minutes)
|
|
| 472 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=après
|
|
| 473 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=avant
|
|
| 474 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Même date - heure
|
|
| 475 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Écart de temps (%s)
|
|
| 473 | 476 |
observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Activité observée
|
| 474 | 477 |
observe.common.ActivityLonglinePairingResultItemDto.type=Activité observée
|
| 475 | 478 |
observe.common.ActivityObsDto.action.goToOpen.short=Observations - Activité ouverte
|
| 1 | 1 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistance
|
| 2 | 2 |
observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue
|
| 3 | 3 |
observe.common.ActivityLonglinePairingResultItemDto.computedTime
|
| 4 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter
|
|
| 5 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore
|
|
| 6 |
+observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals
|
|
| 4 | 7 |
observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue
|
| 5 | 8 |
observe.common.ActivityLonglinePairingResultItemDto.observationActivity
|
| 6 | 9 |
observe.common.ActivityLonglinePairingResultItemDto.type
|
| ... | ... | @@ -96,9 +96,9 @@ public class ActivityLonglinePairingEngine { |
| 96 | 96 |
private ActivityLonglinePairingResultItem toActivityResultItem(ActivityLonglineAware activityLonglineLogbook, ActivityLonglineObsReference activityLonglineObsReference, double maxTime, double maxDistance) {
|
| 97 | 97 |
Date logbookTimeStamp = activityLonglineLogbook.getTimeStamp();
|
| 98 | 98 |
Date obsTimeStamp = activityLonglineObsReference.getTimeStamp();
|
| 99 |
- long computedTime = Math.abs(TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS));
|
|
| 99 |
+ long computedTime = TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS);
|
|
| 100 | 100 |
double computedDistance = activityLonglineLogbook.getGPSPoint().getDistanceInKm(activityLonglineObsReference.getGPSPoint());
|
| 101 |
- return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance, computedTime < maxTime, computedDistance < maxDistance);
|
|
| 101 |
+ return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance, Math.abs(computedTime) < maxTime, computedDistance < maxDistance);
|
|
| 102 | 102 |
}
|
| 103 | 103 |
|
| 104 | 104 |
}
|
| ... | ... | @@ -10,12 +10,12 @@ package fr.ird.observe.services.service.data.ll.pairing; |
| 10 | 10 |
* it under the terms of the GNU General Public License as
|
| 11 | 11 |
* published by the Free Software Foundation, either version 3 of the
|
| 12 | 12 |
* License, or (at your option) any later version.
|
| 13 |
- *
|
|
| 13 |
+ *
|
|
| 14 | 14 |
* This program is distributed in the hope that it will be useful,
|
| 15 | 15 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
| 16 | 16 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
| 17 | 17 |
* GNU General Public License for more details.
|
| 18 |
- *
|
|
| 18 |
+ *
|
|
| 19 | 19 |
* You should have received a copy of the GNU General Public
|
| 20 | 20 |
* License along with this program. If not, see
|
| 21 | 21 |
* <http://www.gnu.org/licenses/gpl-3.0.html>.
|
| ... | ... | @@ -27,6 +27,9 @@ import fr.ird.observe.dto.data.ll.observation.ActivityLonglineObsReference; |
| 27 | 27 |
import io.ultreia.java4all.lang.Numbers;
|
| 28 | 28 |
|
| 29 | 29 |
import java.util.Objects;
|
| 30 |
+import java.util.concurrent.TimeUnit;
|
|
| 31 |
+ |
|
| 32 |
+import static io.ultreia.java4all.i18n.I18n.t;
|
|
| 30 | 33 |
|
| 31 | 34 |
/**
|
| 32 | 35 |
* Created by tchemit on 15/10/2018.
|
| ... | ... | @@ -37,14 +40,15 @@ public class ActivityLonglinePairingResultItem implements ObserveDto { |
| 37 | 40 |
|
| 38 | 41 |
private final ActivityLonglineObsReference observationActivity;
|
| 39 | 42 |
private final long computedTime;
|
| 40 |
- private final double computedDistance;
|
|
| 43 |
+ private final float computedDistance;
|
|
| 41 | 44 |
private final boolean timeValid;
|
| 42 | 45 |
private final boolean distanceValid;
|
| 46 |
+ private String computedTimeStr;
|
|
| 43 | 47 |
|
| 44 | 48 |
public ActivityLonglinePairingResultItem(ActivityLonglineObsReference observationActivity, long computedTime, double computedDistance, boolean timeValid, boolean distanceValid) {
|
| 45 | 49 |
this.observationActivity = observationActivity;
|
| 46 | 50 |
this.computedTime = computedTime;
|
| 47 |
- this.computedDistance = Numbers.roundOneDigit((float) computedDistance);
|
|
| 51 |
+ this.computedDistance = Numbers.roundTwoDigits((float) computedDistance);
|
|
| 48 | 52 |
this.timeValid = timeValid;
|
| 49 | 53 |
this.distanceValid = distanceValid;
|
| 50 | 54 |
}
|
| ... | ... | @@ -57,7 +61,7 @@ public class ActivityLonglinePairingResultItem implements ObserveDto { |
| 57 | 61 |
return computedTime;
|
| 58 | 62 |
}
|
| 59 | 63 |
|
| 60 |
- public double getComputedDistance() {
|
|
| 64 |
+ public float getComputedDistance() {
|
|
| 61 | 65 |
return computedDistance;
|
| 62 | 66 |
}
|
| 63 | 67 |
|
| ... | ... | @@ -69,6 +73,24 @@ public class ActivityLonglinePairingResultItem implements ObserveDto { |
| 69 | 73 |
return distanceValid;
|
| 70 | 74 |
}
|
| 71 | 75 |
|
| 76 |
+ public String getComputedTimeStr() {
|
|
| 77 |
+ if (computedTimeStr == null) {
|
|
| 78 |
+ if (computedTime == 0) {
|
|
| 79 |
+ return computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals");
|
|
| 80 |
+ }
|
|
| 81 |
+ if (computedTime < 0) {
|
|
| 82 |
+ computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter") + " - ";
|
|
| 83 |
+ } else {
|
|
| 84 |
+ computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore") +" - ";
|
|
| 85 |
+ }
|
|
| 86 |
+ long days = TimeUnit.MINUTES.toDays(computedTime);
|
|
| 87 |
+ long hours = TimeUnit.MINUTES.toHours(computedTime) % 24;
|
|
| 88 |
+ long minutes = TimeUnit.MINUTES.toMinutes(computedTime) % 60;
|
|
| 89 |
+ computedTimeStr += String.format("%s:%s:%s", days, hours, minutes);
|
|
| 90 |
+ }
|
|
| 91 |
+ return computedTimeStr;
|
|
| 92 |
+ }
|
|
| 93 |
+ |
|
| 72 | 94 |
@Override
|
| 73 | 95 |
public boolean equals(Object o) {
|
| 74 | 96 |
if (this == o) return true;
|
| ... | ... | @@ -44,6 +44,8 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator |
| 44 | 44 |
n("observe.common.ActivityLonglinePairingResultItemDto.type");
|
| 45 | 45 |
n("observe.common.ActivityLonglinePairingResultItemDto.observationActivity");
|
| 46 | 46 |
n("observe.common.ActivityLonglinePairingResultItemDto.computedTime");
|
| 47 |
+ n("observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore");
|
|
| 48 |
+ n("observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter");
|
|
| 47 | 49 |
n("observe.common.ActivityLonglinePairingResultItemDto.computedDistance");
|
| 48 | 50 |
}
|
| 49 | 51 |
|
| ... | ... | @@ -51,7 +53,7 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator |
| 51 | 53 |
private final DataReferenceDecorator<ActivityLonglineObsReference> activityDecorator;
|
| 52 | 54 |
|
| 53 | 55 |
public ActivityLonglinePairingResultItemDecorator(DecoratorService decoratorService, Locale locale) {
|
| 54 |
- super(ActivityLonglinePairingResultItem.class, "${observationActivity}$s##${computedTime}$s##${computedDistance}$s");
|
|
| 56 |
+ super(ActivityLonglinePairingResultItem.class, "${observationActivity}$s##${computedTimeStr}$s##${computedDistance}$s");
|
|
| 55 | 57 |
this.locale = locale;
|
| 56 | 58 |
activityDecorator = decoratorService.getDataReferenceDecorator(ActivityLonglineObsReference.class);
|
| 57 | 59 |
}
|
| ... | ... | @@ -61,7 +63,7 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator |
| 61 | 63 |
protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
|
| 62 | 64 |
Object value0 = jxcontext.getValue(token);
|
| 63 | 65 |
switch (token) {
|
| 64 |
- case "computedTime":
|
|
| 66 |
+ case "computedTimeStr":
|
|
| 65 | 67 |
return (Comparable) l(locale, "observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue", value0);
|
| 66 | 68 |
case "computedDistance":
|
| 67 | 69 |
return (Comparable) l(locale, "observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue", value0);
|
| ... | ... | @@ -74,6 +74,16 @@ |
| 74 | 74 |
<message>observe.validation.targetLength.positive.length</message>
|
| 75 | 75 |
</field-validator>
|
| 76 | 76 |
|
| 77 |
+ <!-- validation de la taille par borne -->
|
|
| 78 |
+ <field-validator type="species_lengthDto">
|
|
| 79 |
+ <param name="ratio">1.0</param>
|
|
| 80 |
+ <param name="enable">true</param>
|
|
| 81 |
+ <param name="expression">
|
|
| 82 |
+ <![CDATA[ species != null && length != null ]]>
|
|
| 83 |
+ </param>
|
|
| 84 |
+ <message>observe.validation.targetLength.bound.length##${min}##${max}</message>
|
|
| 85 |
+ </field-validator>
|
|
| 86 |
+ |
|
| 77 | 87 |
</field>
|
| 78 | 88 |
|
| 79 | 89 |
<field name="weight">
|
| ... | ... | @@ -23,22 +23,7 @@ |
| 23 | 23 |
"-//Apache Struts//XWork Validator 1.0.3//EN"
|
| 24 | 24 |
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
|
| 25 | 25 |
<validators>
|
| 26 |
- |
|
| 27 |
- <field name="length">
|
|
| 28 |
- |
|
| 29 |
- <!-- validation de la taille par borne -->
|
|
| 30 |
- <field-validator type="species_lengthDto">
|
|
| 31 |
- <param name="ratio">1.0</param>
|
|
| 32 |
- <param name="enable">true</param>
|
|
| 33 |
- <param name="expression">
|
|
| 34 |
- <![CDATA[ species != null && length != null ]]>
|
|
| 35 |
- </param>
|
|
| 36 |
- <message>observe.validation.targetLength.bound.length##${min}##${max}</message>
|
|
| 37 |
- </field-validator>
|
|
| 38 |
- |
|
| 39 |
- </field>
|
|
| 40 |
- |
|
| 41 |
- |
|
| 26 |
+
|
|
| 42 | 27 |
<field name="weight">
|
| 43 | 28 |
|
| 44 | 29 |
<!-- validation du weight par borne (uniquement pour mode saisie par individus) -->
|