This is an automated email from the git hooks/post-receive script. New commit to branch feature/7874_tri_sur_les_traits_par_date in repository tutti. See http://git.codelutin.com/tutti.git commit c3afc48b75a5297b222374aadc05acd4c06f1aab Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Jan 14 15:41:08 2016 +0100 Utiliser un comparateur de date pour le tri de la liste des opérations (See #7874) --- .../fr/ifremer/tutti/service/DecoratorService.java | 53 ++++++++++++++++++++-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java index de86ec1..6e53390 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/DecoratorService.java @@ -24,11 +24,21 @@ package fr.ifremer.tutti.service; import com.google.common.collect.Sets; import fr.ifremer.tutti.LabelAware; -import fr.ifremer.tutti.persistence.entities.data.*; +import fr.ifremer.tutti.persistence.entities.data.Attachment; +import fr.ifremer.tutti.persistence.entities.data.Cruise; +import fr.ifremer.tutti.persistence.entities.data.FishingOperation; +import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModelEntry; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; -import fr.ifremer.tutti.persistence.entities.referential.*; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; import org.apache.commons.lang3.StringUtils; import org.nuiton.decorator.Decorator; import org.nuiton.decorator.DecoratorProvider; @@ -36,6 +46,7 @@ import org.nuiton.decorator.DecoratorProvider; import java.io.File; import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; +import java.util.Comparator; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -70,6 +81,13 @@ public class DecoratorService extends AbstractTuttiService { public static final String SEPARATOR = "#"; + public static final Comparator<FishingOperation> FISHING_OPERATION_COMPARATOR_BY_GEAR_SHOOTING_START_DATE = new Comparator<FishingOperation>() { + @Override + public int compare(FishingOperation o1, FishingOperation o2) { + return o1.getGearShootingStartDate().compareTo(o2.getGearShootingStartDate()); + } + }; + /** Delegate decorator provider. */ protected DecoratorProvider decoratorProvider; @@ -101,7 +119,7 @@ public class DecoratorService extends AbstractTuttiService { registerTuttiDecorator(TuttiLocation.class, "${label}$s#${name}$s", SEPARATOR, " - "); registerTuttiDecorator(Cruise.class, "${name}$s", SEPARATOR, " - "); registerTuttiDecorator(TuttiProtocol.class, "${name}$s", SEPARATOR, " - "); - registerTuttiDecorator(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$d#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - "); + registerDecorator(new FishingOperationDecorator()); registerTuttiDecorator(FishingOperation.class, FILE_NAME_COMPATIBLE, "${stationNumber}$s#${fishingOperationNumber}$s#${multirigAggregation}$s#${gearShootingStartDate}$td%4$tm%4$tY", SEPARATOR, "-"); registerTuttiDecorator(Gear.class, "${label}$s#${name}$s", SEPARATOR, " - "); registerTuttiDecorator(Gear.class, GEAR_WITH_RANK_ORDER, "${rankOrder}$d#${label}$s#${name}$s", SEPARATOR, " - "); @@ -356,6 +374,35 @@ public class DecoratorService extends AbstractTuttiService { } } + public static class FishingOperationDecorator extends TuttiDecorator<FishingOperation> implements Cloneable { + + private static final long serialVersionUID = 1L; + + public FishingOperationDecorator() throws IllegalArgumentException, NullPointerException { + super(FishingOperation.class, "${stationNumber}$s#${fishingOperationNumber}$d#${multirigAggregation}$s#${gearShootingStartDate}$td/%4$tm/%4$tY", SEPARATOR, " - "); + } + + @Override + protected Comparator<FishingOperation> getComparator(int pos) { + Comparator<FishingOperation> comparator; + if (pos == 3) { + comparator = FISHING_OPERATION_COMPARATOR_BY_GEAR_SHOOTING_START_DATE; + } else { + comparator = super.getComparator(pos); + } + return comparator; + } + + @Override + protected Object onNullValue(FishingOperation bean, String token) { + Object result = null; + if (Vessel.PROPERTY_NAME.equals(token)) { + result = t("tutti.propety.no.vessel.name"); + } + return result; + } + } + public static class SpaceEvery3DigitDecorator extends Decorator<String> implements Cloneable { DecimalFormat df; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.