Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

1 changed file:

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
    220 220
     
    
    221 221
             SpeciesReference species = bean.getSpecies();
    
    222 222
             log.debug(prefix + "selected species " + species);
    
    223
    -        List<SpeciesReference> availableEspeces;
    
    223
    +        List<SpeciesReference> availableSpecies;
    
    224 224
             JComponent requestFocus;
    
    225
    -        Optional<SizeMeasureTypeReference> sizeMeasureType;
    
    225
    +        Optional<SizeMeasureTypeReference> sizeMeasureType = Optional.empty();
    
    226 226
     
    
    227 227
             if (create) {
    
    228
    +
    
    229
    +            Optional<SizeMeasureTypeReference> defaultSizeMeasureType;
    
    230
    +
    
    231
    +            boolean unsetSpecies = true;
    
    228 232
                 if (model.isCreate()) {
    
    233
    +
    
    229 234
                     // on passe le mode de saisie en count
    
    230
    -                ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    231
    -                ui.getAcquisitionModeGroup().setSelectedValue(AcquisitionMode.byEffectif);
    
    235
    +                AcquisitionMode acquisitionMode = AcquisitionMode.byEffectif;
    
    236
    +
    
    237
    +                if (editingRow > 0) {
    
    238
    +                    unsetSpecies = false;
    
    239
    +                    // get previous row
    
    240
    +                    NonTargetLengthDto editBean = model.getValueAt(editingRow - 1);
    
    241
    +                    // get previous species
    
    242
    +                    species = editBean.getSpecies();
    
    243
    +                    // get previous acquisition mode
    
    244
    +                    acquisitionMode = AcquisitionMode.valueOf(editBean.getAcquisitionMode());
    
    245
    +                    // get previous size measure type
    
    246
    +                    sizeMeasureType = Optional.ofNullable(editBean.getSizeMeasureType());
    
    247
    +                }
    
    248
    +
    
    249
    +                updateAcquisitionMode0(acquisitionMode);
    
    250
    +
    
    232 251
                 }
    
    233
    -            availableEspeces = getModel().getReferenceCache().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES);
    
    234
    -            // on utilise le code par defaut de l'espèce
    
    235
    -            sizeMeasureType = getSpeciesDefaultSizeMeasureType(species);
    
    236
    -            ui.getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null));
    
    237
    -            requestFocus = ui.getSpecies();
    
    252
    +
    
    253
    +            availableSpecies = getModel().getReferenceCache().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES);
    
    254
    +
    
    255
    +            // get default size measure type
    
    256
    +            defaultSizeMeasureType = getSpeciesDefaultSizeMeasureType(species);
    
    257
    +
    
    258
    +            if (unsetSpecies) {
    
    259
    +                // unset species (this will not set again species in widget)
    
    260
    +                species = null;
    
    261
    +                sizeMeasureType = defaultSizeMeasureType;
    
    262
    +                requestFocus = ui.getSpecies();
    
    263
    +            } else {
    
    264
    +                requestFocus = ui.getLength();
    
    265
    +            }
    
    266
    +
    
    267
    +            // use default size measure type
    
    268
    +            ui.getModel().setDefaultSizeMeasureType(defaultSizeMeasureType.orElse(null));
    
    269
    +
    
    238 270
             } else {
    
    239 271
                 requestFocus = ui.getCount();
    
    240
    -            // on passe le mode de saisie
    
    241
    -            int acquisitionMode = bean.getAcquisitionMode();
    
    242
    -            AcquisitionMode enumValue = AcquisitionMode.valueOf(acquisitionMode);
    
    243
    -            ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    244
    -            ui.getAcquisitionModeGroup().setSelectedValue(enumValue);
    
    245
    -            availableEspeces = Collections.singletonList(species);
    
    272
    +            updateAcquisitionMode0(AcquisitionMode.valueOf(bean.getAcquisitionMode()));
    
    273
    +            availableSpecies = Collections.singletonList(species);
    
    274
    +            species = null;
    
    246 275
                 sizeMeasureType = Optional.ofNullable(bean.getSizeMeasureType());
    
    247 276
             }
    
    248 277
     
    
    249 278
             ui.getSizeMeasureType().setSelectedItem(null);
    
    250
    -        sizeMeasureType.ifPresent(sizeMeasureTypeDtoReferentialReference -> ui.getSizeMeasureType().setSelectedItem(sizeMeasureTypeDtoReferentialReference));
    
    279
    +        sizeMeasureType.ifPresent(ui.getSizeMeasureType()::setSelectedItem);
    
    280
    +
    
    281
    +        ui.getSpecies().setData(availableSpecies);
    
    282
    +        if (species != null) {
    
    283
    +            log.info(String.format("Will set species : %s", species));
    
    284
    +            ui.getSpecies().setSelectedItem(null);
    
    285
    +            ui.getSpecies().setSelectedItem(species);
    
    286
    +        }
    
    251 287
     
    
    252
    -        ui.getSpecies().setData(availableEspeces);
    
    253 288
             setFormFocusOwner(requestFocus);
    
    254 289
     
    
    255 290
             tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged);
    
    ... ... @@ -382,6 +417,10 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    382 417
             }
    
    383 418
         }
    
    384 419
     
    
    420
    +    private void updateAcquisitionMode0(AcquisitionMode acquisitionMode) {
    
    421
    +        ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    422
    +        ui.getAcquisitionModeGroup().setSelectedValue(acquisitionMode);
    
    423
    +    }
    
    385 424
     
    
    386 425
     }
    
    387 426