Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 430861f4 by Tony Chemit at 2020-06-22T19:07:10+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-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/NonTargetSampleUIHandler.java Changes: ===================================== client-datasource-editor-ps/src/main/java/fr/ird/observe/client/datasource/editor/content/data/ps/observation/NonTargetSampleUIHandler.java ===================================== @@ -220,36 +220,71 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS SpeciesReference species = bean.getSpecies(); log.debug(prefix + "selected species " + species); - List<SpeciesReference> availableEspeces; + 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().getReferenceCache().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES); - // on utilise le code par defaut de l'espèce - sizeMeasureType = getSpeciesDefaultSizeMeasureType(species); - ui.getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null)); - requestFocus = ui.getSpecies(); + + availableSpecies = getModel().getReferenceCache().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(); + } + + // use default size measure type + ui.getModel().setDefaultSizeMeasureType(defaultSizeMeasureType.orElse(null)); + } 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 = Collections.singletonList(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(availableSpecies); + if (species != null) { + log.info(String.format("Will set species : %s", species)); + ui.getSpecies().setSelectedItem(null); + ui.getSpecies().setSelectedItem(species); + } - ui.getSpecies().setData(availableEspeces); setFormFocusOwner(requestFocus); tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged); @@ -382,6 +417,10 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS } } + private void updateAcquisitionMode0(AcquisitionMode acquisitionMode) { + ui.getAcquisitionModeGroup().setSelectedValue(null); + ui.getAcquisitionModeGroup().setSelectedValue(acquisitionMode); + } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/430861f4d7044283bf10108124... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/430861f4d7044283bf10108124... You're receiving this email because of your account on gitlab.com.