This is an automated email from the git hooks/post-receive script. New commit to branch feature/7608 in repository observe. See http://git.codelutin.com/observe.git commit 9c7487d6d335e61893bc4dba3a4952bf34606d4f Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed Oct 21 14:29:08 2015 +0200 migration des écrans d'échantillons de la faune accessoire (refs #7608) --- .../content/table/impl/seine/NonTargetSampleUI.css | 12 +- .../table/impl/seine/NonTargetSampleUI.jaxx | 8 +- .../table/impl/seine/NonTargetSampleUIHandler.java | 188 +++------------------ .../table/impl/seine/NonTargetSampleUIModel.java | 47 ++++-- .../main/xmi/observe-services-dto-seine.properties | 1 + .../src/main/xmi/observe-services-dto-seine.zargo | Bin 61805 -> 61995 bytes .../services/dto/ObserveDtosInitializer.java | 6 +- .../service/seine/NonTargetSampleServiceTopia.java | 11 +- 8 files changed, 78 insertions(+), 195 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.css index cd9dd56..39dbdf5 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.css @@ -73,11 +73,10 @@ labelFor:{sex}; } -//FIXME -//#sex { - //property:{NonTargetLengthDto.PROPERTY_SEX}; - //selectedItem:{tableEditBean.getSex()}; -//} +#sex { + property:{NonTargetLengthDto.PROPERTY_SEX}; + selectedItem:{tableEditBean.getSex()}; +} #picturesReferencesLabel { text:"observe.common.picturesReferences"; @@ -102,8 +101,7 @@ #speciesTypeTaille { font-weight:"bold"; - //FIXME - //text:{getSpeciesFauneTypeTaille(tableEditBean.getSpecies())}; + text:{getSpeciesFauneTypeTaille(tableEditBean.getSpecies())}; } #comment { diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.jaxx index 84ef679..40eeca8 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUI.jaxx @@ -24,9 +24,7 @@ superGenericType='NonTargetSampleDto, NonTargetLengthDto' contentTitle='{n("observe.common.nonTargetSample")}' saveNewEntryText='{n("observe.action.create.nonTargetSample")}' - saveNewEntryTip='{n("observe.action.create.nonTargetSample.tip")}' - - > + saveNewEntryTip='{n("observe.action.create.nonTargetSample.tip")}'> <style source="../../CommonTable.css"/> <style source="AbstractSampleUI.css"/> @@ -99,8 +97,8 @@ public String getLengthDataTip(boolean computed) { return computed ? t(LONGUEUR_COMPUTED_TIP) : t(LONGUEUR_OBSERVED_TIP); } -public String getSpeciesFauneTypeTaille(SpeciesDto species) { - return species == null ? t("observe.message.no.species.selected") : species.getLengthMeasureType(); +public String getSpeciesFauneTypeTaille(ReferenceDto<SpeciesDto> species) { + return species == null ? t("observe.message.no.species.selected") : (String) species.getPropertyValue(SpeciesDto.PROPERTY_LENGTH_MEASURE_TYPE); } ]]> </script> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 698f71e..b162738 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -21,11 +21,13 @@ */ package fr.ird.observe.ui.content.table.impl.seine; +import com.google.common.collect.Lists; import fr.ird.observe.ObserveSwingApplicationContext; import fr.ird.observe.business.db.DataContext; - import fr.ird.observe.business.db.constants.DataContextType; import fr.ird.observe.services.dto.FormDto; +import fr.ird.observe.services.dto.ReferenceDto; +import fr.ird.observe.services.dto.ReferenceSetDto; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; @@ -37,16 +39,17 @@ import fr.ird.observe.ui.UIHelper; import fr.ird.observe.ui.content.ContentMode; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIHandler; -import jaxx.runtime.context.JAXXContextEntryDef; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.validator.NuitonValidatorScope; -import javax.swing.*; +import javax.swing.JComponent; +import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.List; +import java.util.Set; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -60,9 +63,6 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam /** Logger */ static private Log log = LogFactory.getLog(NonTargetSampleUIHandler.class); - protected final JAXXContextEntryDef<List<SpeciesDto>> ALL_ESPECES_ENTRY = - UIHelper.newListContextEntryDef("NonTargetSampleUI-all-speciess"); - /** * Ecoute les modifications de la propriété {@link NonTargetLengthDto#getWeight()}, * et repasser alors le flag {@link NonTargetLengthDto#isWeightSource()} à @@ -114,144 +114,10 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam @Override protected String getEditBeanIdToLoad() { - String setId = getDataContext().getSelectedSetId(); - // on doit récupérer l'unique échantillonThon de la calée - -// String id = dataService.getNonTargetSampleId(dataSource, setId); -// return id; - return null; - } - - //FIXME -// @Override -// protected NonTargetSample loadEditBean(ContentMode mode, -// DataContext dataContext, -// DataService dataService, -// DataSource dataSource) { -// -// List<Species> speciess; -// -// String setId = dataContext.getSelectedSetId(); -// -// if (mode == ContentMode.UPDATE) { -// -// -// speciess = dataService.getAvailableEspeceForNonTargetSample(dataSource, setId); -// -// } else { -// speciess = new ArrayList<Species>(); -// } -// ALL_ESPECES_ENTRY.setContextValue(getUi(), speciess); -// -// // on doit récupérer l'unique échantillonThon de la calée -// String id = getEditBeanIdToLoad(dataContext, dataService, dataSource); -// -// NonTargetSample editBean = getBean(); -// -// if (log.isInfoEnabled()) { -// log.info(prefix + " - set id : " + setId); -// log.info(prefix + " - echantillon faune id : " + id); -// log.info(prefix + " - edit bean id : " + editBean.getTopiaId()); -// } -// -// if (id == null) { -// -// // l'échantillon n'existe pas encore, donc rien a faire -// getLoadBinder().load(null, editBean, true); -// -// getModel().getChildsUpdator().setChilds(editBean, new ArrayList<NonTargetLength>()); -// -// } else { -// -// // preparation du bean d'édition -// dataService.loadEditEntity(dataSource, id, getLoadExecutor()); -// } -// -// getModel().setMode(mode); -// -// // initialisation du modèle du tableau -// getUi().getTableModel().attachModel(); -// -// return editBean; -// } - - @Override - protected boolean prepareSave(NonTargetSampleDto bean, List<NonTargetLengthDto> objets) { - - boolean withLengths = !objets.isEmpty(); - - if (withLengths) { - - if (bean.getId() == null) { - - String setId = getDataContext().getSelectedSetId(); - - // l'échantillon n'existe pas encore, il faut le créer - - if (log.isDebugEnabled()) { - log.debug("Will create nonTargetSample " + bean + " for " + setId); - } - - //FIXME -// getDataService().create(getDataSource(), setId, bean, null, getCreateExecutor()); - - } - - } - - return true; - + String id = getDataContext().getSelectedSetId(); + return id; } - //FIXME -// @Override -// protected void doPersist(NonTargetSample bean, DataService dataService, DataSource dataSource) { -// -// if (bean.getTopiaId() != null && bean.isNonTargetLengthEmpty()) { -// -// // remove orphan non target sample -// -// String setId = getDataContext().getSelectedSetId(); -// if (log.isInfoEnabled()) { -// log.info("Remove obsolete nonTargetSample " + bean.getTopiaId() + " from Set: " + setId); -// } -// getDataService().delete(getDataSource(), setId, bean, getDeleteExecutor()); -// -// } else { -// -// // normal persist -// super.doPersist(bean, dataService, dataSource); -// -// } -// -// } - - //FIXME -// @Override -// protected NonTargetSample onCreate(TopiaContext tx, -// Object parent, -// NonTargetSample editBean) throws TopiaException { -// SetSeine parentBean = (SetSeine) parent; -// NonTargetSample beanToSave = -// ObserveDAOHelper.getNonTargetSampleDAO(tx).create(); -// if (log.isInfoEnabled()) { -// log.info("Echantillon faune " + beanToSave.getTopiaId() + -// " was created."); -// } -// editBean.setTopiaId(beanToSave.getTopiaId()); -// editBean.setTopiaCreateDate(beanToSave.getTopiaCreateDate()); -// editBean.setTopiaVersion(beanToSave.getTopiaVersion()); -// parentBean.addNonTargetSample(beanToSave); -// return beanToSave; -// } - - //FIXME -// @Override -// protected void onDelete(TopiaContext tx, Object parent, NonTargetSample beanToDelete) throws TopiaException { -// SetSeine parentBean = (SetSeine) parent; -// parentBean.removeNonTargetSample(beanToDelete); -// } - @SuppressWarnings("unchecked") @Override protected void onSelectedRowChanged(int editingRow, @@ -263,13 +129,12 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam return; } -// SpeciesDto species = bean.getSpecies(); + ReferenceDto<SpeciesDto> species = bean.getSpecies(); NonTargetSampleUI ui = getUi(); - //FIXME -// if (log.isDebugEnabled()) { -// log.debug("selected species " + species); -// } -// List<Species> availableEspeces; + if (log.isDebugEnabled()) { + log.debug("selected species " + species); + } + List<ReferenceDto<SpeciesDto>> availableEspeces; JComponent requestFocus; if (create) { @@ -281,8 +146,9 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam ui.getAcquisitionModeGroup().setSelectedValue(ModeSaisieEchantillonEnum.byEffectif); } -// availableEspeces = new ArrayList<Species>( -// ALL_ESPECES_ENTRY.getContextValue(ui)); + ReferenceSetDto<SpeciesDto> speciesSetDto = getModel().getFormDto().getReferenceSetDto(SpeciesDto.class); + + availableEspeces = Lists.newArrayList((Set) speciesSetDto.getReference()); requestFocus = ui.getSpecies(); } else { @@ -295,9 +161,9 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam ui.getAcquisitionModeGroup().setSelectedValue(null); ui.getAcquisitionModeGroup().setSelectedValue(enumValue); -// availableEspeces = Arrays.asList(species); + availableEspeces = Lists.newArrayList(species); } -// ui.getSpecies().setData(availableEspeces); + ui.getSpecies().setData(availableEspeces); requestFocus.requestFocus(); NonTargetLengthDto tableEditBean = getTableEditBean(); @@ -330,11 +196,11 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam n("observe.nonTargetSample.table.picturesReferences"), n("observe.nonTargetSample.table.picturesReferences.tip")); - UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, SpeciesDto.class)); + UIHelper.setTableColumnRenderer(table, 0, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, SpeciesDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 1, UIHelper.newEmptyNumberTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 2, UIHelper.newEmptyNumberTableCellRenderer(renderer)); UIHelper.setTableColumnRenderer(table, 3, UIHelper.newEmptyNumberTableCellRenderer(renderer)); - UIHelper.setTableColumnRenderer(table, 4, UIHelper.newDecorateTableCellRenderer(renderer, SexDto.class)); + UIHelper.setTableColumnRenderer(table, 4, UIHelper.newDecorateTableCellRenderer(renderer, ReferenceDto.class, SexDto.class.getSimpleName())); UIHelper.setTableColumnRenderer(table, 5, renderer); } @@ -342,17 +208,9 @@ public class NonTargetSampleUIHandler extends ContentTableUIHandler<NonTargetSam protected ContentMode getContentMode(DataContext dataContext) { ContentMode mode = super.getContentMode(dataContext); - boolean showData = false; - - //FIXME -// try { -// String setId = getDataContext().getSelectedSetId(); -// showData = getDataService().canUseNonTargetSample(getDataSource(), setId); -// } catch (DataSourceException e) { -// if (log.isErrorEnabled()) { -// log.error(e); -// } -// } + String setId = getDataContext().getSelectedSetId(); + + boolean showData = getNonTargetSampleService().canUseNonTargetSample(setId); getUi().getModel().setShowData(showData); diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java index 77585e2..5219102 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/content/table/impl/seine/NonTargetSampleUIModel.java @@ -23,13 +23,16 @@ package fr.ird.observe.ui.content.table.impl.seine; */ import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import fr.ird.observe.services.dto.seine.NonTargetLengthDtos; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.ui.content.table.ContentTableMeta; import fr.ird.observe.ui.content.table.ContentTableModel; import fr.ird.observe.ui.content.table.ContentTableUIModel; import fr.ird.observe.ui.content.table.ObserveContentTableUI; +import java.util.Collection; import java.util.List; /** @@ -46,14 +49,15 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD super(NonTargetSampleDto.class, NonTargetLengthDto.class, - new String[]{NonTargetSampleDto.PROPERTY_NON_TARGET_LENGTH, NonTargetSampleDto.PROPERTY_COMMENT}, + new String[]{ + NonTargetSampleDto.PROPERTY_NON_TARGET_LENGTH, + NonTargetSampleDto.PROPERTY_COMMENT}, new String[]{NonTargetLengthDto.PROPERTY_SPECIES, NonTargetLengthDto.PROPERTY_LENGTH, NonTargetLengthDto.PROPERTY_LENGTH_SOURCE, NonTargetLengthDto.PROPERTY_WEIGHT, NonTargetLengthDto.PROPERTY_WEIGHT_SOURCE, - //FIXME -// NonTargetLengthDto.PROPERTY_SEX, + NonTargetLengthDto.PROPERTY_SEX, NonTargetLengthDto.PROPERTY_COUNT, NonTargetLengthDto.PROPERTY_ACQUISITION_MODE, NonTargetLengthDto.PROPERTY_PICTURES_REFERENCES @@ -64,16 +68,15 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_LENGTH, false), ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_WEIGHT, false), ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_COUNT, false), - //FIXME -// new ContentTableMeta<NonTargetLengthDto>(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_SEX, false) { -// -// private static final long serialVersionUID = 1L; -// -// @Override -// public boolean isNullValue(ContentTableModel<?, ?> m, NonTargetLength bean, int row) { -// return bean.getSex() != null; -// } -// }, + new ContentTableMeta<NonTargetLengthDto>(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_SEX, false) { + + private static final long serialVersionUID = 1L; + + @Override + public boolean isNullValue(ContentTableModel<?, ?> m, NonTargetLengthDto bean, int row) { + return bean.getSex() != null; + } + }, ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_PICTURES_REFERENCES, false)); initModel(ui, metas); @@ -82,7 +85,21 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD @Override protected ContentTableModel<NonTargetSampleDto, NonTargetLengthDto> createTableModel(ObserveContentTableUI<NonTargetSampleDto, NonTargetLengthDto> ui, List<ContentTableMeta<NonTargetLengthDto>> contentTableMetas) { - // FIXME - return null; + return new ContentTableModel<NonTargetSampleDto, NonTargetLengthDto>(ui, contentTableMetas) { + @Override + protected Collection<NonTargetLengthDto> getChilds(NonTargetSampleDto bean) { + return bean.getNonTargetLength(); + } + + @Override + protected void load(NonTargetLengthDto source, NonTargetLengthDto target) { + NonTargetLengthDtos.copyNonTargetLengthDto(source, target); + } + + @Override + protected void setChilds(NonTargetSampleDto parent, List<NonTargetLengthDto> childs) { + parent.setNonTargetLength(Sets.newLinkedHashSet(childs)); + } + }; } } diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties index cb3e6f8..0463451 100644 --- a/observe-services-model/src/main/xmi/observe-services-dto-seine.properties +++ b/observe-services-model/src/main/xmi/observe-services-dto-seine.properties @@ -55,6 +55,7 @@ fr.ird.observe.services.dto.seine.ObjectObservedSpecies.attribute.speciesStatus. fr.ird.observe.services.dto.seine.ObjectObservedSpecies.attribute.species.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.services.dto.seine.NonTargetLength.attribute.species.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.SpeciesDto +fr.ird.observe.services.dto.seine.NonTargetLength.attribute.sex.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.SexDto fr.ird.observe.services.dto.seine.NonTargetCatch.attribute.reasonForDiscard.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto fr.ird.observe.services.dto.seine.NonTargetCatch.attribute.speciesFate.tagValue.simpleBeanWithNoInterfaceAttributeGeneric=fr.ird.observe.services.dto.referential.seine.SpeciesFateDto diff --git a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo index 15adf22..9a6fae3 100644 Binary files a/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo and b/observe-services-model/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java index 4462a21..7f7cb9a 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/dto/ObserveDtosInitializer.java @@ -958,7 +958,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { registerReferentialReferenceDtoBinder(SpeciesDto.class, Species.class, SpeciesDto.PROPERTY_FAO_CODE, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL, - SpeciesDto.PROPERTY_HOME_ID); + SpeciesDto.PROPERTY_HOME_ID, + SpeciesDto.PROPERTY_LENGTH_MEASURE_TYPE); } @Override @@ -1464,7 +1465,8 @@ public class ObserveDtosInitializer implements ObserveModelInitializer { NonTargetLengthDto.PROPERTY_WEIGHT_SOURCE, NonTargetLengthDto.PROPERTY_COUNT, NonTargetLengthDto.PROPERTY_ACQUISITION_MODE, - NonTargetLengthDto.PROPERTY_SPECIES + NonTargetLengthDto.PROPERTY_SPECIES, + NonTargetLengthDto.PROPERTY_SEX ); } diff --git a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java index 0deb45c..2272856 100644 --- a/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java +++ b/observe-services-topia/src/main/java/fr/ird/observe/services/service/seine/NonTargetSampleServiceTopia.java @@ -32,7 +32,10 @@ import fr.ird.observe.services.ObserveServiceTopia; import fr.ird.observe.services.dto.FormDto; import fr.ird.observe.services.dto.ReferenceDto; import fr.ird.observe.services.dto.ReferenceSetDto; +import fr.ird.observe.services.dto.ReferenceTypeName; +import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.seine.NonTargetLengthDto; import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.services.dto.seine.SetSeineDto; @@ -90,7 +93,13 @@ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements NonTargetSample nonTargetSample = getNonTargetSample(setSeine); - FormDto<NonTargetSampleDto> form = entityToReadFormDto(NonTargetSampleDto.class, NonTargetSample.class, nonTargetSample); + FormDto<NonTargetSampleDto> form = entityToEditFormDto( + NonTargetSampleDto.class, + NonTargetSample.class, + nonTargetSample, + new ReferenceTypeName(NonTargetLengthDto.class, SexDto.class, NonTargetLengthDto.PROPERTY_SEX), + new ReferenceTypeName(NonTargetLengthDto.class, SexDto.class, NonTargetLengthDto.PROPERTY_SPECIES) + ); // on filtre la list des espéces cibles Set<Species> speciesSet = Sets.newLinkedHashSet(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.