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

Commits:

4 changed files:

Changes:

  • client/core/src/main/java/fr/ird/observe/client/util/table/EditableTableModel.java
    ... ... @@ -214,7 +214,7 @@ public abstract class EditableTableModel<E extends InlineDataDto> extends Abstra
    214 214
             this.data.clear();
    
    215 215
             this.data.addAll(data);
    
    216 216
             addDecorator(this.data);
    
    217
    -        if (this.data.isEmpty() && editable && canAddRow) {
    
    217
    +        if (isCanAddEmptyRow()) {
    
    218 218
                 // add an empty row (no fire and select: will be done just below)
    
    219 219
                 addNewRow(0, false);
    
    220 220
             }
    
    ... ... @@ -566,4 +566,14 @@ public abstract class EditableTableModel<E extends InlineDataDto> extends Abstra
    566 566
                 rows.forEach(r -> r.registerDecorator(rowDecorator));
    
    567 567
             }
    
    568 568
         }
    
    569
    +
    
    570
    +    /**
    
    571
    +     * FIXME We should stop trying to add a default empty row when data is empty, user must do it, not we...
    
    572
    +     *
    
    573
    +     * @return {@code true} if can add a new empty row if data is empty.
    
    574
    +     */
    
    575
    +    protected boolean isCanAddEmptyRow() {
    
    576
    +        return this.data.isEmpty() && editable && canAddRow;
    
    577
    +    }
    
    578
    +
    
    569 579
     }

  • client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIHandler.java
    ... ... @@ -351,6 +351,9 @@ public class SetCatchUIHandler extends GeneratedSetCatchUIHandler {
    351 351
             boolean enableInlineModels = newValue && (ui.getModel().getStates().isReadingMode() || ui.getModel().getStates().isEditing());
    
    352 352
             getTableModel().inlineModels().keySet().forEach(i -> {
    
    353 353
                 i.setEditable(enableInlineModels);
    
    354
    +            if (newValue && (!ui.getModel().getStates().isReadingMode() || ui.getModel().getStates().isEditing())) {
    
    355
    +                i.validate();
    
    356
    +            }
    
    354 357
                 if (!enableInlineModels) {
    
    355 358
                     int selectedRow = ui.getTableModel().getSelectedRow();
    
    356 359
                     if (selectedRow != -1) {
    

  • client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SizeMeasureTableModel.java
    ... ... @@ -105,4 +105,8 @@ public class SizeMeasureTableModel extends EditableTableModelWithCache<SizeMeasu
    105 105
             return SizeMeasureDto.newDto(new Date());
    
    106 106
         }
    
    107 107
     
    
    108
    +    @Override
    
    109
    +    protected boolean isCanAddEmptyRow() {
    
    110
    +        return false;
    
    111
    +    }
    
    108 112
     }

  • client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/WeightMeasureTableModel.java
    ... ... @@ -103,4 +103,8 @@ public class WeightMeasureTableModel extends EditableTableModelWithCache<WeightM
    103 103
             return !Objects.equals(oldValue, aValue);
    
    104 104
         }
    
    105 105
     
    
    106
    +    @Override
    
    107
    +    protected boolean isCanAddEmptyRow() {
    
    108
    +        return false;
    
    109
    +    }
    
    106 110
     }