Tony CHEMIT pushed to branch develop-9.3.x at ultreiaio / ird-observe
Commits:
-
db656bff
by Tony Chemit at 2024-09-16T09:55:28+02:00
-
a5aa662b
by Tony Chemit at 2024-09-16T09:55:34+02:00
4 changed files:
- client/core/src/main/java/fr/ird/observe/client/util/table/EditableTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetCatchUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SizeMeasureTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/WeightMeasureTableModel.java
Changes:
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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) {
|
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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 | } |