Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: e786f45a by Tony Chemit at 2020-06-18T14:17:16+02:00 [PS] Rappel de la dernière espèce utilisée dans la saisie des échantillons non cible - Closes #1528 - - - - - 1 changed file: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java ===================================== @@ -21,7 +21,6 @@ */ package fr.ird.observe.client.ui.content.data.seine; -import com.google.common.collect.Lists; import fr.ird.observe.client.constants.AcquisitionMode; import fr.ird.observe.client.db.ClientDataContext; import fr.ird.observe.client.ui.content.ContentMode; @@ -49,6 +48,7 @@ import javax.swing.table.DefaultTableCellRenderer; import java.awt.Component; import java.awt.Container; import java.util.Collection; +import java.util.Collections; import java.util.LinkedList; import java.util.List; import java.util.Optional; @@ -112,7 +112,6 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS return getDataContext().getSelectedSetId(); } - @SuppressWarnings("unchecked") @Override protected void onSelectedRowChanged(int editingRow, NonTargetLengthDto bean, @@ -131,50 +130,77 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS SpeciesReference species = bean.getSpecies(); NonTargetSampleUI ui = getUi(); - if (log.isDebugEnabled()) { - log.debug("selected species " + species); - } - List<SpeciesReference> availableEspeces; + log.debug("selected species " + species); + + List<SpeciesReference> availableSpecies; JComponent requestFocus; - Optional<SizeMeasureTypeReference> sizeMeasureType; + Optional<SizeMeasureTypeReference> sizeMeasureType=Optional.empty(); if (create) { + Optional<SizeMeasureTypeReference> defaultSizeMeasureType; + + boolean unsetSpecies = true; if (model.isCreate()) { // on passe le mode de saisie en count - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(AcquisitionMode.byEffectif); + AcquisitionMode acquisitionMode = AcquisitionMode.byEffectif; + + if (editingRow > 0) { + unsetSpecies = false; + // get previous row + NonTargetLengthDto editBean = model.getValueAt(editingRow - 1); + // get previous species + species = editBean.getSpecies(); + // get previous acquisition mode + acquisitionMode = AcquisitionMode.valueOf(editBean.getAcquisitionMode()); + // get previous size measure type + sizeMeasureType = Optional.ofNullable(editBean.getSizeMeasureType()); + } + + updateAcquisitionMode0(acquisitionMode); + } - availableEspeces = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); + availableSpecies = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); + + // get default size measure type + defaultSizeMeasureType = getSpeciesDefaultSizeMeasureType(species); + + if (unsetSpecies) { + // unset species (this will not set again species in widget) + species = null; + sizeMeasureType = defaultSizeMeasureType; + requestFocus = ui.getSpecies(); + } else { + requestFocus = ui.getLength(); + } // on utilise le code par defaut de l'espèce - sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); - getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); + ui.getModel().setDefaultSizeMeasureType(defaultSizeMeasureType.orElse(null)); - requestFocus = ui.getSpecies(); } else { requestFocus = ui.getCount(); // on passe le mode de saisie - int acquisitionMode = bean.getAcquisitionMode(); - AcquisitionMode enumValue = - AcquisitionMode.valueOf(acquisitionMode); - ui.getAcquisitionModeGroup().setSelectedValue(null); - ui.getAcquisitionModeGroup().setSelectedValue(enumValue); - - availableEspeces = Lists.newArrayList(species); + updateAcquisitionMode0(AcquisitionMode.valueOf(bean.getAcquisitionMode())); + availableSpecies = Collections.singletonList(species); + species = null; sizeMeasureType = Optional.ofNullable(bean.getSizeMeasureType()); } ui.getSizeMeasureType().setSelectedItem(null); - sizeMeasureType.ifPresent(sizeMeasureTypeDtoReferentialReference -> ui.getSizeMeasureType().setSelectedItem(sizeMeasureTypeDtoReferentialReference)); + sizeMeasureType.ifPresent(ui.getSizeMeasureType()::setSelectedItem); - ui.getSpecies().setData(availableEspeces); + ui.getSpecies().setData(availableSpecies); + if (species != null) { + log.info(String.format("Will set species : %s", species)); + ui.getSpecies().setSelectedItem(null); + ui.getSpecies().setSelectedItem(species); + } UIHelper.askFocus(requestFocus); tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged); @@ -351,6 +377,11 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } + private void updateAcquisitionMode0(AcquisitionMode acquisitionMode) { + ui.getAcquisitionModeGroup().setSelectedValue(null); + ui.getAcquisitionModeGroup().setSelectedValue(acquisitionMode); + } + class TablePopupSupport extends AutotSelectRowAndShowPopupActionSupport { private final NonTargetSampleUI ui; View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/e786f45a26109f2afc4cfe3153... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/e786f45a26109f2afc4cfe3153... You're receiving this email because of your account on gitlab.com.