This is an automated email from the git hooks/post-receive script. New commit to branch feature/8404 in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit aa8b3b337dbd8957f9e15ee0fec0f511b56b93cf Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 6 12:02:43 2016 +0100 Ajout sizeMeasureType sur nonTargetSample et mise en place type de mensuration par défaut --- .../content/table/impl/seine/AbstractSampleUI.jcss | 49 ++++++++++ .../table/impl/seine/AbstractSampleUIHandler.java | 36 ++++---- .../table/impl/seine/NonTargetSampleUI.jaxx | 37 ++++---- .../table/impl/seine/NonTargetSampleUI.jcss | 25 ------ .../table/impl/seine/NonTargetSampleUIHandler.java | 72 +++++++++++++-- .../table/impl/seine/NonTargetSampleUIModel.java | 26 ++++-- .../content/table/impl/seine/TargetSampleUI.jaxx | 4 +- .../content/table/impl/seine/TargetSampleUI.jcss | 45 ---------- .../table/impl/seine/TargetSampleUIHandler.java | 100 +++++++++++++++------ .../table/impl/seine/TargetSampleUIModel.java | 20 ++++- .../i18n/application-swing_en_GB.properties | 1 + .../i18n/application-swing_es_ES.properties | 1 + .../i18n/application-swing_fr_FR.properties | 1 + .../ReferentialReferenceSetDefinitions.java | 4 +- .../dto/referential/SizeMeasureTypeHelper.java | 17 ---- .../services/topia/binder/BinderSupport.java | 10 +++ .../topia/binder/data/ActivityLonglineBinder.java | 4 +- .../topia/binder/data/ActivitySeineBinder.java | 4 +- .../topia/binder/data/NonTargetLengthBinder.java | 4 + .../topia/binder/data/TripLonglineBinder.java | 8 +- .../topia/binder/data/TripSeineBinder.java | 4 +- .../topia/binder/referential/SpeciesBinder.java | 4 +- 22 files changed, 303 insertions(+), 173 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUI.jcss index 2abd16d..8aeb4fc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUI.jcss @@ -59,6 +59,55 @@ JToolBar { selectedItem:{tableEditBean.getSex()}; } +#modeAndCodePanel { + layout:{new GridLayout(1,0)}; +} + +#acquisitionModeGroup { + selectedValue:{ModeSaisieEchantillonEnum.valueOf(tableEditBean.getAcquisitionMode())}; +} + +#acquisitionModePanel { + border:{new TitledBorder(t("observe.common.acquisitionMode"))}; + layout:{new GridLayout(1,0)}; +} + +#acquisitionModeEffectif { + buttonGroup:"acquisitionModeGroup"; + value:{ModeSaisieEchantillonEnum.byEffectif}; + text:{ModeSaisieEchantillonEnum.byEffectif.getI18nKey()}; + selected:{tableEditBean.getAcquisitionMode() == 0}; + enabled:{!tableModel.isEditable() || tableModel.isCreate()}; +} + +#acquisitionModeIndividu { + buttonGroup:"acquisitionModeGroup"; + value:{ModeSaisieEchantillonEnum.byIndividu}; + text:{ModeSaisieEchantillonEnum.byIndividu.getI18nKey()}; + selected:{tableEditBean.getAcquisitionMode() == 1}; + enabled:{!tableModel.isEditable() || tableModel.isCreate()}; +} + +#sizeMeasureTypePanel { + border:{new TitledBorder(t("observe.common.sizeMeasureType"))}; +} + +#sizeMeasureTypeLabel { + labelFor:{sizeMeasureType}; +} + +#sizeMeasureType { + _entityClass:{SizeMeasureTypeDto.class}; + property:sizeMeasureType; + bean:{tableEditBean}; + _tablePropertyName:{"sizeMeasureType"}; + selectedItem:{tableEditBean.getSizeMeasureType()}; +} + +#defaultSizeMeasureType { + actionIcon:combobox-reset2; + toolTipText:"observe.content.sample.resetDefaultSizeMeasureType"; +} #lengthLabel { labelFor:{length}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java index 147bc54..fbf67dc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/AbstractSampleUIHandler.java @@ -26,7 +26,8 @@ import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIHandler; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.seine.TargetLengthDto; import java.beans.PropertyChangeListener; @@ -57,25 +58,25 @@ public abstract class AbstractSampleUIHandler<E extends IdDto, D extends IdDto> */ protected final PropertyChangeListener lengthChanged; + /** + * Ecoute les modifications de la propriété {@link TargetLengthDto#getLength()}, + * et repasser alors le flag {@link TargetLengthDto#isIsLengthComputed()} à + * {@code false}. + * + * @since 3.0 + */ + protected final PropertyChangeListener speciesChanged; + protected AbstractSampleUIHandler(ObserveContentTableUI<E, D> ui) { super(ui, DataContextType.SetSeine); weightChanged = evt -> { - if (evt.getSource() instanceof TargetLengthDto) { - TargetLengthDto source = (TargetLengthDto) evt.getSource(); - source.setIsWeightComputed(false); - } else if (evt.getSource() instanceof NonTargetLengthDto) { - NonTargetLengthDto source = (NonTargetLengthDto) evt.getSource(); - source.setIsWeightComputed(false); - } + onWeightChanged((Float) evt.getNewValue()); }; lengthChanged = evt -> { - if (evt.getSource() instanceof TargetLengthDto) { - TargetLengthDto source = (TargetLengthDto) evt.getSource(); - source.setIsLengthComputed(false); - } else if (evt.getSource() instanceof NonTargetLengthDto) { - NonTargetLengthDto source = (NonTargetLengthDto) evt.getSource(); - source.setIsLengthComputed(false); - } + onLengthChanged((Float) evt.getNewValue()); + }; + speciesChanged = evt -> { + onSpeciesChanged((ReferentialReference<SpeciesDto>) evt.getNewValue()); }; } @@ -83,4 +84,9 @@ public abstract class AbstractSampleUIHandler<E extends IdDto, D extends IdDto> public abstract void resetIsLengthComputed(); + protected abstract void onSpeciesChanged(ReferentialReference<SpeciesDto> species); + + protected abstract void onWeightChanged(Float newValue); + + protected abstract void onLengthChanged(Float newValue); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx index 3e6a70f..cc648fa 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jaxx @@ -21,10 +21,10 @@ --> <fr.ird.observe.application.swing.ui.content.table.ContentTableUI - superGenericType='NonTargetSampleDto, NonTargetLengthDto' - contentTitle='{n("observe.common.nonTargetSample")}' - saveNewEntryText='{n("observe.content.action.create.nonTargetSample")}' - saveNewEntryTip='{n("observe.content.action.create.nonTargetSample.tip")}'> + superGenericType='NonTargetSampleDto, NonTargetLengthDto' + contentTitle='{n("observe.common.nonTargetSample")}' + saveNewEntryText='{n("observe.content.action.create.nonTargetSample")}' + saveNewEntryTip='{n("observe.content.action.create.nonTargetSample.tip")}'> <style source="../../CommonTable.jcss"/> <style source="AbstractSampleUI.jcss"/> @@ -32,6 +32,7 @@ <import> fr.ird.observe.services.dto.CommentableDto fr.ird.observe.services.dto.referential.SexDto + fr.ird.observe.services.dto.referential.SizeMeasureTypeDto fr.ird.observe.services.dto.referential.SpeciesDto fr.ird.observe.services.dto.referential.ReferentialReference fr.ird.observe.services.dto.referential.seine.SpeciesFateDto @@ -110,10 +111,19 @@ public String getSpeciesFauneTypeTaille(ReferentialReference<SpeciesDto> species <!-- mode de saisie --> <row> - <cell columns="2"> - <JPanel id='acquisitionModePanel'> - <JRadioButton id='acquisitionModeEffectif'/> - <JRadioButton id='acquisitionModeIndividu'/> + <cell columns="3"> + <JPanel id="modeAndCodePanel"> + <JPanel id='acquisitionModePanel'> + <JRadioButton id='acquisitionModeEffectif'/> + <JRadioButton id='acquisitionModeIndividu'/> + </JPanel> + <JPanel id='sizeMeasureTypePanel' layout='{new BorderLayout()}'> + <JLabel id='sizeMeasureTypeLabel' constraints="BorderLayout.WEST"/> + <BeanComboBox id='sizeMeasureType' genericType='ReferentialReference<SizeMeasureTypeDto>' + constructorParams='this' constraints="BorderLayout.CENTER"/> + <JButton id="defaultSizeMeasureType" constraints="BorderLayout.EAST" + onActionPerformed="getHandler().resetDefaultSizeMeasureType()"/> + </JPanel> </JPanel> </cell> </row> @@ -128,16 +138,6 @@ public String getSpeciesFauneTypeTaille(ReferentialReference<SpeciesDto> species </cell> </row> - <!-- species faune (type taille) --> - <row> - <cell> - <JLabel id='speciesTypeTailleLabel'/> - </cell> - <cell weightx='1' anchor='east'> - <JLabel id='speciesTypeTaille'/> - </cell> - </row> - <!-- length --> <row> <cell> @@ -199,7 +199,6 @@ public String getSpeciesFauneTypeTaille(ReferentialReference<SpeciesDto> species </cell> </row> - <!-- reference pĥoto --> <row> <cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jcss index a921312..47226c2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUI.jcss @@ -35,31 +35,6 @@ _entityClass:{SpeciesFateDto.class}; } -#acquisitionModeGroup { - selectedValue:{ModeSaisieEchantillonEnum.valueOf(tableEditBean.getAcquisitionMode())}; -} - -#acquisitionModePanel { - border:{new TitledBorder(t("observe.common.acquisitionMode"))}; - layout:{new GridLayout(1,0)}; -} - -#acquisitionModeEffectif { - buttonGroup:"acquisitionModeGroup"; - value:{ModeSaisieEchantillonEnum.byEffectif}; - text:{ModeSaisieEchantillonEnum.byEffectif.getI18nKey()}; - selected:{tableEditBean.getAcquisitionMode() == 0}; - enabled:{!tableModel.isEditable() || tableModel.isCreate()}; -} - -#acquisitionModeIndividu { - buttonGroup:"acquisitionModeGroup"; - value:{ModeSaisieEchantillonEnum.byIndividu}; - text:{ModeSaisieEchantillonEnum.byIndividu.getI18nKey()}; - selected:{tableEditBean.getAcquisitionMode() == 1}; - enabled:{!tableModel.isEditable() || tableModel.isCreate()}; -} - #lengthLabel { text:"observe.common.taille"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java index 9cdbd92..d3799a8 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIHandler.java @@ -31,6 +31,7 @@ import fr.ird.observe.services.dto.Form; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.dto.result.SaveResultDto; @@ -49,6 +50,7 @@ import javax.swing.table.DefaultTableCellRenderer; import java.util.Collection; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -84,6 +86,26 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS getUi().getLength().grabFocus(); } + + @Override + protected void onWeightChanged(Float newValue) { + getTableEditBean().setIsWeightComputed(false); + } + + @Override + protected void onLengthChanged(Float newValue) { + getTableEditBean().setIsLengthComputed(false); + } + + @Override + protected void onSpeciesChanged(ReferentialReference<SpeciesDto> species) { + + // on utilise le code par defaut de l'espèce + Optional<ReferentialReference<SizeMeasureTypeDto>> sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); + getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); + + } + @Override protected String getEditBeanIdToLoad() { return getDataContext().getSelectedSetId(); @@ -100,6 +122,12 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS return; } + + NonTargetLengthDto tableEditBean = getTableEditBean(); + tableEditBean.removePropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged); + tableEditBean.removePropertyChangeListener(NonTargetLengthDto.PROPERTY_LENGTH, lengthChanged); + tableEditBean.removePropertyChangeListener(NonTargetLengthDto.PROPERTY_SPECIES, speciesChanged); + ReferentialReference<SpeciesDto> species = bean.getSpecies(); NonTargetSampleUI ui = getUi(); if (log.isDebugEnabled()) { @@ -107,6 +135,7 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } List<ReferentialReference<SpeciesDto>> availableEspeces; JComponent requestFocus; + Optional<ReferentialReference<SizeMeasureTypeDto>> sizeMeasureType; if (create) { @@ -118,8 +147,12 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } Set<ReferentialReference<SpeciesDto>> speciesReferences = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); - availableEspeces = Lists.newArrayList(speciesReferences); + + // on utilise le code par defaut de l'espèce + sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); + getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); + requestFocus = ui.getSpecies(); } else { @@ -133,16 +166,23 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS ui.getAcquisitionModeGroup().setSelectedValue(enumValue); availableEspeces = Lists.newArrayList(species); + + sizeMeasureType = Optional.ofNullable(bean.getSizeMeasureType()); + + } + + ui.getSizeMeasureType().setSelectedItem(null); + if (sizeMeasureType.isPresent()) { + ui.getSizeMeasureType().setSelectedItem(sizeMeasureType.get()); } + ui.getSpecies().setData(availableEspeces); requestFocus.requestFocus(); - NonTargetLengthDto tableEditBean = getTableEditBean(); - tableEditBean.removePropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged); tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged); - - tableEditBean.removePropertyChangeListener(NonTargetLengthDto.PROPERTY_LENGTH, lengthChanged); tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_LENGTH, lengthChanged); + tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_SPECIES, speciesChanged); + } @Override @@ -263,6 +303,11 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } } + public void resetDefaultSizeMeasureType() { + getUi().getSizeMeasureType().setSelectedItem(null); + getUi().getSizeMeasureType().setSelectedItem(getUi().getModel().getDefaultSizeMeasureType()); + } + @Override protected void doPersist(NonTargetSampleDto bean) { @@ -274,8 +319,13 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS @Override protected void loadEditBean(String beanId) { Form<NonTargetSampleDto> form = getNonTargetSampleService().loadForm(beanId); + // on a besoin du formulaire dans cette méthode getModel().setForm(form); loadReferentialReferenceSetsInModel(form); + // on demande une mises à jour des uis avec les bons référentiels + // normalement cela est fait quand on fait le setForm (mais ici le setForm est fait trop tôt) + updateUiWithReferenceSetsFromModel(); + NonTargetSampleHelper.copyNonTargetSampleDto(form.getObject(), getBean()); } @@ -319,4 +369,16 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS protected NonTargetSampleService getNonTargetSampleService() { return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newNonTargetSampleService(); } + + protected Optional<ReferentialReference<SizeMeasureTypeDto>> getSpeciesDefaultSizeMeasureType(ReferentialReference<SpeciesDto> species) { + Optional<ReferentialReference<SizeMeasureTypeDto>> result = Optional.empty(); + if (species != null) { + + String sizeMeasureId = (String) species.getPropertyValue(SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE + "Id"); + result = getUi().getSizeMeasureType().getData().stream() + .filter(s -> s.getId().equals(sizeMeasureId)).findFirst(); + } + return result; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java index 946b1da..3087dba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/NonTargetSampleUIModel.java @@ -22,16 +22,18 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -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.NonTargetLengthHelper; -import fr.ird.observe.services.dto.seine.NonTargetSampleDto; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; +import fr.ird.observe.services.dto.seine.NonTargetLengthDto; +import fr.ird.observe.services.dto.seine.NonTargetLengthHelper; +import fr.ird.observe.services.dto.seine.NonTargetSampleDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -45,6 +47,10 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD private static final long serialVersionUID = 1L; + public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE="defaultSizeMeasureType"; + + private ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType; + public NonTargetSampleUIModel(NonTargetSampleUI ui) { super(NonTargetSampleDto.class, @@ -64,7 +70,7 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD NonTargetLengthDto.PROPERTY_PICTURES_REFERENCES }); - List<ContentTableMeta<NonTargetLengthDto>> metas = Lists.newArrayList( + List<ContentTableMeta<NonTargetLengthDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_SPECIES, false), ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_LENGTH, false), ContentTableModel.newTableMeta(NonTargetLengthDto.class, NonTargetLengthDto.PROPERTY_WEIGHT, false), @@ -104,4 +110,14 @@ public class NonTargetSampleUIModel extends ContentTableUIModel<NonTargetSampleD } }; } + + public ReferentialReference<SizeMeasureTypeDto> getDefaultSizeMeasureType() { + return defaultSizeMeasureType; + } + + public void setDefaultSizeMeasureType(ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType) { + ReferentialReference<SizeMeasureTypeDto> oldValue = getDefaultSizeMeasureType(); + this.defaultSizeMeasureType = defaultSizeMeasureType; + firePropertyChange(PROPERTY_DEFAULT_SIZE_MEASURE_TYPE, oldValue, defaultSizeMeasureType); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx index 88c055f..74667d6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jaxx @@ -103,7 +103,7 @@ public String getLengthDataTip(boolean computed) { <row> <cell columns="3"> <JPanel id="modeAndCodePanel"> - <JPanel id='acquisitionModePanel' constraints="BorderLayout.CENTER"> + <JPanel id='acquisitionModePanel'> <JRadioButton id='acquisitionModeEffectif'/> <JRadioButton id='acquisitionModeIndividu'/> </JPanel> @@ -111,6 +111,8 @@ public String getLengthDataTip(boolean computed) { <JLabel id='sizeMeasureTypeLabel' constraints="BorderLayout.WEST"/> <BeanComboBox id='sizeMeasureType' genericType='ReferentialReference<SizeMeasureTypeDto>' constructorParams='this' constraints="BorderLayout.CENTER"/> + <JButton id="defaultSizeMeasureType" constraints="BorderLayout.EAST" + onActionPerformed="getHandler().resetDefaultSizeMeasureType()"/> </JPanel> </JPanel> </cell> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jcss index 699dadf..4f7f34d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUI.jcss @@ -30,51 +30,6 @@ _entityClass:{SpeciesDto.class}; } -#modeAndCodePanel { - layout:{new GridLayout(1,0)}; -} - -#acquisitionModeGroup { - selectedValue:{ModeSaisieEchantillonEnum.valueOf(tableEditBean.getAcquisitionMode())}; -} - -#acquisitionModePanel { - border:{new TitledBorder(t("observe.common.acquisitionMode"))}; - layout:{new GridLayout(0,1)}; -} - -#sizeMeasureTypePanel { - border:{new TitledBorder(t("observe.common.sizeMeasureType"))}; -} - -#sizeMeasureTypeLabel { - labelFor:{sizeMeasureType}; -} - -#sizeMeasureType { - _entityClass:{SizeMeasureTypeDto.class}; - _tablePropertyName:{TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE}; - property:{TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE}; - selectedItem:{tableEditBean.getSizeMeasureType()}; - bean:{tableEditBean}; -} - -#acquisitionModeEffectif { - buttonGroup:"acquisitionModeGroup"; - value:{ModeSaisieEchantillonEnum.byEffectif}; - text:{ModeSaisieEchantillonEnum.byEffectif.getI18nKey()}; - selected:{tableEditBean.getAcquisitionMode() == 0}; - enabled:{!tableModel.isEditable() || tableModel.isCreate()}; -} - -#acquisitionModeIndividu { - buttonGroup:"acquisitionModeGroup"; - value:{ModeSaisieEchantillonEnum.byIndividu}; - text:{ModeSaisieEchantillonEnum.byIndividu.getI18nKey()}; - selected:{tableEditBean.getAcquisitionMode() == 1}; - enabled:{!tableModel.isEditable() || tableModel.isCreate()}; -} - #lengthLabel { text:"observe.common.length.inf"; } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java index d2a63a2..55a6081 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIHandler.java @@ -6,15 +6,15 @@ * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the + * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public + * + * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% @@ -51,6 +51,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; @@ -72,8 +73,7 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD */ protected final boolean discarded; - public TargetSampleUIHandler(ContentTableUI<TargetSampleDto, TargetLengthDto> ui, - boolean discarded) { + public TargetSampleUIHandler(ContentTableUI<TargetSampleDto, TargetLengthDto> ui, boolean discarded) { super(ui); this.discarded = discarded; } @@ -100,6 +100,27 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD return getDataContext().getSelectedSetId(); } + @Override + protected void onSpeciesChanged(ReferentialReference<SpeciesDto> species) { + + // on utilise le code par defaut de l'espèce + Optional<ReferentialReference<SizeMeasureTypeDto>> sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); + + getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); + + } + + @Override + protected void onWeightChanged(Float newValue) { + getTableEditBean().setIsWeightComputed(false); + } + + @Override + protected void onLengthChanged(Float newValue) { + getTableEditBean().setIsLengthComputed(false); + } + + @Override protected void onSelectedRowChanged(int editingRow, TargetLengthDto bean, boolean create) { ContentTableModel<TargetSampleDto, TargetLengthDto> model = getTableModel(); @@ -108,12 +129,18 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD return; } + TargetLengthDto tableEditBean = getTableEditBean(); + + tableEditBean.removePropertyChangeListener(TargetLengthDto.PROPERTY_WEIGHT, weightChanged); + tableEditBean.removePropertyChangeListener(TargetLengthDto.PROPERTY_LENGTH, lengthChanged); + tableEditBean.removePropertyChangeListener(TargetLengthDto.PROPERTY_SPECIES, speciesChanged); + ReferentialReference<SpeciesDto> species = bean.getSpecies(); JComponent requestFocus; ModeSaisieEchantillonEnum modeSaisieEchantillonEnum; - ReferentialReference<SizeMeasureTypeDto> sizeMeasureType = null; + Optional<ReferentialReference<SizeMeasureTypeDto>> sizeMeasureType = Optional.empty(); if (create) { @@ -127,9 +154,13 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD modeSaisieEchantillonEnum = ModeSaisieEchantillonEnum.valueOf(editBean.getAcquisitionMode()); } - // on utilise par défaut le code mesure lf - sizeMeasureType = SizeMeasureTypeHelper.getLf(ui.getSizeMeasureType().getData()); - + // on utilise le code par defaut de l'espèce + sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); + if (!sizeMeasureType.isPresent()) { + // au cas où, on repasse toujours sur lf + sizeMeasureType = Optional.of(SizeMeasureTypeHelper.getLf(getUi().getSizeMeasureType().getData())); + } + getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); } requestFocus = ui.getSpecies(); @@ -141,20 +172,20 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD int acquisitionMode = bean.getAcquisitionMode(); modeSaisieEchantillonEnum = ModeSaisieEchantillonEnum.valueOf(acquisitionMode); - sizeMeasureType = bean.getSizeMeasureType(); + sizeMeasureType = Optional.ofNullable(bean.getSizeMeasureType()); } - ui.getAcquisitionModeGroup().setSelectedValue(null); ui.getAcquisitionModeGroup().setSelectedValue(modeSaisieEchantillonEnum); ui.getSizeMeasureType().setSelectedItem(null); - ui.getSizeMeasureType().setSelectedItem(sizeMeasureType); + if (sizeMeasureType.isPresent()) { + ui.getSizeMeasureType().setSelectedItem(sizeMeasureType.get()); + } - // on met a jour l'espce + // on met a jour l'espece ui.getSpecies().setSelectedItem(null); - if (species != null) { if (log.isDebugEnabled()) { log.debug("species to use " + species); @@ -163,12 +194,9 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD } requestFocus.requestFocus(); - TargetLengthDto tableEditBean = getTableEditBean(); - tableEditBean.removePropertyChangeListener(TargetLengthDto.PROPERTY_WEIGHT, weightChanged); tableEditBean.addPropertyChangeListener(TargetLengthDto.PROPERTY_WEIGHT, weightChanged); - - tableEditBean.removePropertyChangeListener(TargetLengthDto.PROPERTY_LENGTH, lengthChanged); tableEditBean.addPropertyChangeListener(TargetLengthDto.PROPERTY_LENGTH, lengthChanged); + tableEditBean.addPropertyChangeListener(TargetLengthDto.PROPERTY_SPECIES, speciesChanged); } @Override @@ -308,6 +336,11 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD } } + public void resetDefaultSizeMeasureType() { + getUi().getSizeMeasureType().setSelectedItem(null); + getUi().getSizeMeasureType().setSelectedItem(getUi().getModel().getDefaultSizeMeasureType()); + } + @Override protected void doPersist(TargetSampleDto bean) { @@ -322,12 +355,6 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD loadReferentialReferenceSetsInModel(form); getModel().setForm(form); TargetSampleHelper.copyTargetSampleDto(form.getObject(), getBean()); - for (TargetLengthDto targetLengthDto : getBean().getTargetLength()) { - ReferentialReference<SizeMeasureTypeDto> sizeMeasureType = targetLengthDto.getSizeMeasureType(); - if (sizeMeasureType != null) { - SizeMeasureTypeHelper.filterForSeine(sizeMeasureType); - } - } } @Override @@ -349,8 +376,19 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD break; + case TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE: { + + result = SizeMeasureTypeHelper.filterForSeine((Collection) incomingReferences); + if (log.isInfoEnabled()) { + log.info("Using " + result.size() + " size measure type(s)."); + } + if (result.size() != 2) { + throw new IllegalStateException("WHY???"); + } + } } + return result; } @@ -358,4 +396,16 @@ public class TargetSampleUIHandler extends AbstractSampleUIHandler<TargetSampleD protected TargetSampleService getTargetSampleService() { return ObserveSwingApplicationContext.get().getMainDataSourceServicesProvider().newTargetSampleService(); } + + protected Optional<ReferentialReference<SizeMeasureTypeDto>> getSpeciesDefaultSizeMeasureType(ReferentialReference<SpeciesDto> species) { + Optional<ReferentialReference<SizeMeasureTypeDto>> result = Optional.empty(); + if (species != null) { + + String sizeMeasureId = (String) species.getPropertyValue(SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE + "Id"); + result = getUi().getSizeMeasureType().getData().stream() + .filter(s -> s.getId().equals(sizeMeasureId)).findFirst(); + } + return result; + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java index 6906049..8a3ecbb 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/table/impl/seine/TargetSampleUIModel.java @@ -22,16 +22,18 @@ package fr.ird.observe.application.swing.ui.content.table.impl.seine; * #L% */ -import com.google.common.collect.Lists; import com.google.common.collect.Sets; import fr.ird.observe.application.swing.ui.content.table.ContentTableMeta; import fr.ird.observe.application.swing.ui.content.table.ContentTableModel; import fr.ird.observe.application.swing.ui.content.table.ContentTableUIModel; import fr.ird.observe.application.swing.ui.content.table.ObserveContentTableUI; +import fr.ird.observe.services.dto.referential.ReferentialReference; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.seine.TargetLengthDto; import fr.ird.observe.services.dto.seine.TargetLengthHelper; import fr.ird.observe.services.dto.seine.TargetSampleDto; +import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -45,6 +47,10 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta private static final long serialVersionUID = 1L; + public static final String PROPERTY_DEFAULT_SIZE_MEASURE_TYPE="defaultSizeMeasureType"; + + private ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType; + public TargetSampleUIModel(TargetSampleUI ui) { super(TargetSampleDto.class, @@ -64,7 +70,7 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta TargetLengthDto.PROPERTY_ACQUISITION_MODE, TargetLengthDto.PROPERTY_TAG_NUMBER}); - List<ContentTableMeta<TargetLengthDto>> metas = Lists.newArrayList( + List<ContentTableMeta<TargetLengthDto>> metas = Arrays.asList( ContentTableModel.newTableMeta(TargetLengthDto.class, TargetLengthDto.PROPERTY_SPECIES, true), ContentTableModel.newTableMeta(TargetLengthDto.class, TargetLengthDto.PROPERTY_SEX, true), ContentTableModel.newTableMeta(TargetLengthDto.class, TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE, true), @@ -100,4 +106,14 @@ public class TargetSampleUIModel extends ContentTableUIModel<TargetSampleDto, Ta } }; } + + public ReferentialReference<SizeMeasureTypeDto> getDefaultSizeMeasureType() { + return defaultSizeMeasureType; + } + + public void setDefaultSizeMeasureType(ReferentialReference<SizeMeasureTypeDto> defaultSizeMeasureType) { + ReferentialReference<SizeMeasureTypeDto> oldValue = getDefaultSizeMeasureType(); + this.defaultSizeMeasureType = defaultSizeMeasureType; + firePropertyChange(PROPERTY_DEFAULT_SIZE_MEASURE_TYPE, oldValue, defaultSizeMeasureType); + } } diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index c8d7047..3fafe10 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1063,6 +1063,7 @@ observe.content.route.message.not.open=Current route is not open, no modificatio observe.content.route.message.updating=Route is in editing mode. observe.content.route.title=Route observe.content.routes.title=Routes +observe.content.sample.resetDefaultSizeMeasureType=Use default size measure type observe.content.schoolEstimate.table.meanWeight=Mean weight (in Kg) observe.content.schoolEstimate.table.meanWeight.tip=Mean weight (in Kg) observe.content.schoolEstimate.table.speciesThon=Species diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index ebc5a15..4424ee0 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1063,6 +1063,7 @@ observe.content.route.message.not.open=la ruta actual no está abierta, no se pu observe.content.route.message.updating=Se está modificando la ruta actual. observe.content.route.title=Ruta observe.content.routes.title=Rutas +observe.content.sample.resetDefaultSizeMeasureType=Utiliser le type de mensuration par défaut \#TODO observe.content.schoolEstimate.table.meanWeight=Peso medio (en Kg) observe.content.schoolEstimate.table.meanWeight.tip=Peso medio (en Kg) observe.content.schoolEstimate.table.speciesThon=Especie diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index e629cda..2e7dc31 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1063,6 +1063,7 @@ observe.content.route.message.not.open=La route courante n'est pas ouverte, aucu observe.content.route.message.updating=La route est en cours de modification. observe.content.route.title=Route observe.content.routes.title=Routes +observe.content.sample.resetDefaultSizeMeasureType=Utiliser le type de mensuration par défaut observe.content.schoolEstimate.table.meanWeight=Poids moyen (en Kg) observe.content.schoolEstimate.table.meanWeight.tip=Poids moyen (en Kg) observe.content.schoolEstimate.table.speciesThon=Espèce de thon diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java b/services-dto/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java index c05a711..730e61c 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/reference/ReferentialReferenceSetDefinitions.java @@ -121,7 +121,7 @@ public enum ReferentialReferenceSetDefinitions { .addProperty(String.class, HarbourDto.PROPERTY_LOCODE)), SHIP_OWNER(newDefaultDefinitionBuilder(ShipOwnerDto.class) - .addProperty(String.class, ShipOwnerDto.PROPERTY_LABEL)), + .addProperty(String.class, ShipOwnerDto.PROPERTY_LABEL)), LENGTH_LENGTH_PARAMETER(newDefinitionBuilder(LengthLengthParameterDto.class) .addProperty(String.class, LengthLengthParameterDto.PROPERTY_CODE) @@ -159,7 +159,7 @@ public enum ReferentialReferenceSetDefinitions { .addProperty(String.class, SpeciesDto.PROPERTY_FAO_CODE) .addProperty(String.class, SpeciesDto.PROPERTY_SCIENTIFIC_LABEL) .addProperty(String.class, SpeciesDto.PROPERTY_HOME_ID) - .addProperty(String.class, SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE)), + .addProperty(String.class, SpeciesDto.PROPERTY_SIZE_MEASURE_TYPE + "Id")), SPECIES_GROUP(newDefaultDefinitionBuilder(SpeciesGroupDto.class)), diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/SizeMeasureTypeHelper.java b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/SizeMeasureTypeHelper.java index d31236d..8acdc5d 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/referential/SizeMeasureTypeHelper.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/referential/SizeMeasureTypeHelper.java @@ -36,26 +36,9 @@ public class SizeMeasureTypeHelper extends GeneratedSizeMeasureTypeHelper { public static List<ReferentialReference<SizeMeasureTypeDto>> filterForSeine(Collection<ReferentialReference<SizeMeasureTypeDto>> incoming) { return incoming.stream() .filter(d -> isLd1(d) || isLf(d)) - .map(SizeMeasureTypeHelper::filterForSeine) .collect(Collectors.toList()); - - } - - public static ReferentialReference<SizeMeasureTypeDto> filterForSeine(ReferentialReference<SizeMeasureTypeDto> incoming) { - int index = incoming.getPropertyIndex(SizeMeasureTypeDto.PROPERTY_CODE); - String value; - if (isLd1(incoming)) { - value = "LD1"; - } else if (isLf(incoming)) { - value = "LF"; - } else { - throw new IllegalStateException("Can't manage with code: " + incoming); - } - incoming.getLabelPropertyValues()[index] = value; - return incoming; } - public static boolean isLd1(ReferentialReference<SizeMeasureTypeDto> incoming) { return SEINE_LD1_SIZE_MEASURE_TYPE_ID.contains(incoming.getCode()); } diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderSupport.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderSupport.java index d1c0dbd..f682d56 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderSupport.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/BinderSupport.java @@ -24,6 +24,7 @@ package fr.ird.observe.services.topia.binder; import com.google.common.collect.Iterables; import fr.ird.observe.ObserveEntityEnum; +import fr.ird.observe.entities.ObserveEntity; import fr.ird.observe.entities.constants.GearTypePersist; import fr.ird.observe.entities.constants.ReferenceStatusPersist; import fr.ird.observe.entities.constants.TripMapPointTypePersist; @@ -34,6 +35,7 @@ import fr.ird.observe.entities.constants.seine.TypeTransmittingBuoyOperationPers import fr.ird.observe.entities.referentiel.I18nReferenceEntities; import fr.ird.observe.entities.referentiel.I18nReferentialEntity; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; +import fr.ird.observe.services.dto.AbstractReference; import fr.ird.observe.services.dto.referential.I18nReferentialHelper; import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; import fr.ird.observe.services.dto.IdDto; @@ -232,4 +234,12 @@ public abstract class BinderSupport<E extends TopiaEntity, D extends IdDto> { } } + + protected <D extends IdDto> String toDtoId(AbstractReference<D> dto) { + return dto == null ? null : dto.getId(); + } + + protected <E extends ObserveEntity> String toEntityId(E entity) { + return entity == null ? null : entity.getTopiaId(); + } } diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java index b9213e7..984f684 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivityLonglineBinder.java @@ -77,7 +77,7 @@ public class ActivityLonglineBinder extends DataBinderSupport<ActivityLongline, return toDataReference(entity, entity.getTimeStamp(), - entity.getVesselActivityLongline().getTopiaId(), + toEntityId(entity.getVesselActivityLongline()), getLabel(referentialLocale, entity.getVesselActivityLongline()), toDataReference(referentialLocale, entity.getSetLongline(), SetLonglineDto.class)); @@ -88,7 +88,7 @@ public class ActivityLonglineBinder extends DataBinderSupport<ActivityLongline, return toDataReference(dto, dto.getTimeStamp(), - dto.getVesselActivityLongline().getId(), + toDtoId(dto.getVesselActivityLongline()), getLabel(referentialLocale, dto.getVesselActivityLongline()), dto.getSetLongline()); } diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java index 4f1a360..9d8b2f7 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/ActivitySeineBinder.java @@ -109,7 +109,7 @@ public class ActivitySeineBinder extends DataBinderSupport<ActivitySeine, Activi return toDataReference(entity, entity.getTime(), - entity.getVesselActivitySeine().getTopiaId(), + toEntityId(entity.getVesselActivitySeine()), getLabel(referentialLocale, entity.getVesselActivitySeine()), toDataReference(referentialLocale, entity.getSetSeine(), SetSeineDto.class)); @@ -120,7 +120,7 @@ public class ActivitySeineBinder extends DataBinderSupport<ActivitySeine, Activi return toDataReference(dto, dto.getTime(), - dto.getVesselActivitySeine().getId(), + toDtoId(dto.getVesselActivitySeine()), getLabel(referentialLocale, dto.getVesselActivitySeine()), dto.getSetSeine()); diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java index 91e27ce..345dd31 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java @@ -23,12 +23,14 @@ package fr.ird.observe.services.topia.binder.data; */ import fr.ird.observe.entities.referentiel.Sex; +import fr.ird.observe.entities.referentiel.SizeMeasureType; import fr.ird.observe.entities.referentiel.Species; import fr.ird.observe.entities.referentiel.seine.SpeciesFate; import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.SexDto; +import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto; import fr.ird.observe.services.dto.referential.SpeciesDto; import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; @@ -60,6 +62,7 @@ public class NonTargetLengthBinder extends DataBinderSupport<NonTargetLength, No entity.setSpecies(toEntity(dto.getSpecies(), Species.class)); entity.setSex(toEntity(dto.getSex(), Sex.class)); entity.setSpeciesFate(toEntity(dto.getSpeciesFate(), SpeciesFate.class)); + entity.setSizeMeasureType(toEntity(dto.getSizeMeasureType(), SizeMeasureType.class)); entity.setTagNumber(dto.getTagNumber()); } @@ -80,6 +83,7 @@ public class NonTargetLengthBinder extends DataBinderSupport<NonTargetLength, No dto.setSpecies(toReferentialReference(referentialLocale, entity.getSpecies(), SpeciesDto.class)); dto.setSex(toReferentialReference(referentialLocale, entity.getSex(), SexDto.class)); dto.setSpeciesFate(toReferentialReference(referentialLocale, entity.getSpeciesFate(), SpeciesFateDto.class)); + dto.setSizeMeasureType(toReferentialReference(referentialLocale, entity.getSizeMeasureType(), SizeMeasureTypeDto.class)); dto.setTagNumber(entity.getTagNumber()); } diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java index 8b2eb78..7ab3890 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripLonglineBinder.java @@ -103,8 +103,8 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong return toDataReference(entity, entity.getStartDate(), entity.getEndDate(), - entity.getProgram().getTopiaId(), - entity.getTripType().getTopiaId(), + toEntityId(entity.getProgram()), + toEntityId(entity.getTripType()), getLabel(referentialLocale, entity.getVessel()), entity.getObserverLabel()); @@ -116,8 +116,8 @@ public class TripLonglineBinder extends DataBinderSupport<TripLongline, TripLong return toDataReference(dto, dto.getStartDate(), dto.getEndDate(), - dto.getProgram().getId(), - dto.getTripType().getId(), + toDtoId(dto.getProgram()), + toDtoId(dto.getTripType()), getLabel(referentialLocale, dto.getVessel()), PersonHelper.getNames(dto.getObserver())); diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java index ad5bb84..a4ce727 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/TripSeineBinder.java @@ -104,7 +104,7 @@ public class TripSeineBinder extends DataBinderSupport<TripSeine, TripSeineDto> return toDataReference(entity, entity.getStartDate(), entity.getEndDate(), - entity.getProgram().getTopiaId(), + toEntityId(entity.getProgram()), entity.getRouteCount(), getLabel(referentialLocale, entity.getVessel()), entity.getObserverLabel()); @@ -117,7 +117,7 @@ public class TripSeineBinder extends DataBinderSupport<TripSeine, TripSeineDto> return toDataReference(dto, dto.getStartDate(), dto.getEndDate(), - dto.getProgram().getId(), + toDtoId(dto.getProgram()), dto.getRouteCount(), getLabel(referentialLocale, dto.getVessel()), PersonHelper.getNames(dto.getObserver())); diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java index 016258c..b707f21 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/referential/SpeciesBinder.java @@ -92,7 +92,7 @@ public class SpeciesBinder extends ReferentialBinderSupport<Species, SpeciesDto> entity.getFaoCode(), entity.getScientificLabel(), entity.getHomeId(), - entity.getSizeMeasureType() == null ? null : getLabel(referentialLocale, entity.getSizeMeasureType())); + toEntityId(entity.getSizeMeasureType())); } @@ -104,7 +104,7 @@ public class SpeciesBinder extends ReferentialBinderSupport<Species, SpeciesDto> dto.getFaoCode(), dto.getScientificLabel(), dto.getHomeId(), - dto.getSizeMeasureType() == null ? null : getLabel(referentialLocale, dto.getSizeMeasureType())); + toDtoId(dto.getSizeMeasureType())); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.