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

Commits:

1 changed file:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetSampleUIHandler.java
    ... ... @@ -21,7 +21,6 @@
    21 21
      */
    
    22 22
     package fr.ird.observe.client.ui.content.data.seine;
    
    23 23
     
    
    24
    -import com.google.common.collect.Lists;
    
    25 24
     import fr.ird.observe.client.constants.AcquisitionMode;
    
    26 25
     import fr.ird.observe.client.db.ClientDataContext;
    
    27 26
     import fr.ird.observe.client.ui.content.ContentMode;
    
    ... ... @@ -49,6 +48,7 @@ import javax.swing.table.DefaultTableCellRenderer;
    49 48
     import java.awt.Component;
    
    50 49
     import java.awt.Container;
    
    51 50
     import java.util.Collection;
    
    51
    +import java.util.Collections;
    
    52 52
     import java.util.LinkedList;
    
    53 53
     import java.util.List;
    
    54 54
     import java.util.Optional;
    
    ... ... @@ -112,7 +112,6 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    112 112
             return getDataContext().getSelectedSetId();
    
    113 113
         }
    
    114 114
     
    
    115
    -    @SuppressWarnings("unchecked")
    
    116 115
         @Override
    
    117 116
         protected void onSelectedRowChanged(int editingRow,
    
    118 117
                                             NonTargetLengthDto bean,
    
    ... ... @@ -131,50 +130,77 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    131 130
     
    
    132 131
             SpeciesReference species = bean.getSpecies();
    
    133 132
             NonTargetSampleUI ui = getUi();
    
    134
    -        if (log.isDebugEnabled()) {
    
    135
    -            log.debug("selected species " + species);
    
    136
    -        }
    
    137
    -        List<SpeciesReference> availableEspeces;
    
    133
    +        log.debug("selected species " + species);
    
    134
    +
    
    135
    +        List<SpeciesReference> availableSpecies;
    
    138 136
             JComponent requestFocus;
    
    139
    -        Optional<SizeMeasureTypeReference> sizeMeasureType;
    
    137
    +        Optional<SizeMeasureTypeReference> sizeMeasureType=Optional.empty();
    
    140 138
     
    
    141 139
             if (create) {
    
    142 140
     
    
    141
    +            Optional<SizeMeasureTypeReference> defaultSizeMeasureType;
    
    142
    +
    
    143
    +            boolean unsetSpecies = true;
    
    143 144
                 if (model.isCreate()) {
    
    144 145
     
    
    145 146
                     // on passe le mode de saisie en count
    
    146
    -                ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    147
    -                ui.getAcquisitionModeGroup().setSelectedValue(AcquisitionMode.byEffectif);
    
    147
    +                AcquisitionMode acquisitionMode = AcquisitionMode.byEffectif;
    
    148
    +
    
    149
    +                if (editingRow > 0) {
    
    150
    +                    unsetSpecies = false;
    
    151
    +                    // get previous row
    
    152
    +                    NonTargetLengthDto editBean = model.getValueAt(editingRow - 1);
    
    153
    +                    // get previous species
    
    154
    +                    species = editBean.getSpecies();
    
    155
    +                    // get previous acquisition mode
    
    156
    +                    acquisitionMode = AcquisitionMode.valueOf(editBean.getAcquisitionMode());
    
    157
    +                    // get previous size measure type
    
    158
    +                    sizeMeasureType = Optional.ofNullable(editBean.getSizeMeasureType());
    
    159
    +                }
    
    160
    +
    
    161
    +                updateAcquisitionMode0(acquisitionMode);
    
    162
    +
    
    148 163
                 }
    
    149 164
     
    
    150
    -            availableEspeces = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES);
    
    165
    +            availableSpecies = getModel().getReferentialReferences(NonTargetLengthDto.PROPERTY_SPECIES);
    
    166
    +
    
    167
    +            // get default size measure type
    
    168
    +            defaultSizeMeasureType = getSpeciesDefaultSizeMeasureType(species);
    
    169
    +
    
    170
    +            if (unsetSpecies) {
    
    171
    +                // unset species (this will not set again species in widget)
    
    172
    +                species = null;
    
    173
    +                sizeMeasureType = defaultSizeMeasureType;
    
    174
    +                requestFocus = ui.getSpecies();
    
    175
    +            } else {
    
    176
    +                requestFocus = ui.getLength();
    
    177
    +            }
    
    151 178
     
    
    152 179
                 // on utilise le code par defaut de l'espèce
    
    153
    -            sizeMeasureType = getSpeciesDefaultSizeMeasureType(species);
    
    154
    -            getUi().getModel().setDefaultSizeMeasureType(sizeMeasureType.orElse(null));
    
    180
    +            ui.getModel().setDefaultSizeMeasureType(defaultSizeMeasureType.orElse(null));
    
    155 181
     
    
    156
    -            requestFocus = ui.getSpecies();
    
    157 182
             } else {
    
    158 183
     
    
    159 184
                 requestFocus = ui.getCount();
    
    160 185
     
    
    161 186
                 // on passe le mode de saisie
    
    162
    -            int acquisitionMode = bean.getAcquisitionMode();
    
    163
    -            AcquisitionMode enumValue =
    
    164
    -                    AcquisitionMode.valueOf(acquisitionMode);
    
    165
    -            ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    166
    -            ui.getAcquisitionModeGroup().setSelectedValue(enumValue);
    
    167
    -
    
    168
    -            availableEspeces = Lists.newArrayList(species);
    
    187
    +            updateAcquisitionMode0(AcquisitionMode.valueOf(bean.getAcquisitionMode()));
    
    169 188
     
    
    189
    +            availableSpecies = Collections.singletonList(species);
    
    190
    +            species = null;
    
    170 191
                 sizeMeasureType = Optional.ofNullable(bean.getSizeMeasureType());
    
    171 192
     
    
    172 193
             }
    
    173 194
     
    
    174 195
             ui.getSizeMeasureType().setSelectedItem(null);
    
    175
    -        sizeMeasureType.ifPresent(sizeMeasureTypeDtoReferentialReference -> ui.getSizeMeasureType().setSelectedItem(sizeMeasureTypeDtoReferentialReference));
    
    196
    +        sizeMeasureType.ifPresent(ui.getSizeMeasureType()::setSelectedItem);
    
    176 197
     
    
    177
    -        ui.getSpecies().setData(availableEspeces);
    
    198
    +        ui.getSpecies().setData(availableSpecies);
    
    199
    +        if (species != null) {
    
    200
    +            log.info(String.format("Will set species : %s", species));
    
    201
    +            ui.getSpecies().setSelectedItem(null);
    
    202
    +            ui.getSpecies().setSelectedItem(species);
    
    203
    +        }
    
    178 204
             UIHelper.askFocus(requestFocus);
    
    179 205
     
    
    180 206
             tableEditBean.addPropertyChangeListener(NonTargetLengthDto.PROPERTY_WEIGHT, weightChanged);
    
    ... ... @@ -351,6 +377,11 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    351 377
     
    
    352 378
         }
    
    353 379
     
    
    380
    +    private void updateAcquisitionMode0(AcquisitionMode acquisitionMode) {
    
    381
    +        ui.getAcquisitionModeGroup().setSelectedValue(null);
    
    382
    +        ui.getAcquisitionModeGroup().setSelectedValue(acquisitionMode);
    
    383
    +    }
    
    384
    +
    
    354 385
         class TablePopupSupport extends AutotSelectRowAndShowPopupActionSupport {
    
    355 386
     
    
    356 387
             private final NonTargetSampleUI ui;