Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
f96d4e7d
by tchemit at 2018-11-23T15:27:03Z
3 changed files:
- client-core/src/main/java/fr/ird/observe/client/ui/actions/content/api/data/table/SaveTableDataUIAction.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java
- client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIModel.java
Changes:
| ... | ... | @@ -26,6 +26,7 @@ import fr.ird.observe.client.ui.ObserveKeyStrokes; |
| 26 | 26 |
import fr.ird.observe.client.ui.ObserveMainUI;
|
| 27 | 27 |
import fr.ird.observe.client.ui.actions.content.api.AbstractContentUIAction;
|
| 28 | 28 |
import fr.ird.observe.client.ui.content.api.ContentUI;
|
| 29 |
+import fr.ird.observe.client.ui.content.api.data.table.ContentTableModel;
|
|
| 29 | 30 |
import fr.ird.observe.client.ui.content.api.data.table.ContentTableUI;
|
| 30 | 31 |
import fr.ird.observe.client.ui.content.api.data.table.ContentTableUIModel;
|
| 31 | 32 |
import fr.ird.observe.client.ui.util.UIHelper;
|
| ... | ... | @@ -65,7 +66,16 @@ public class SaveTableDataUIAction<D extends DataDto, C extends DataDto, U exten |
| 65 | 66 |
}
|
| 66 | 67 |
|
| 67 | 68 |
private boolean doSave(U ui, D bean) {
|
| 68 |
- List<C> objets = ui.getTableModel().getData();
|
|
| 69 |
+ |
|
| 70 |
+ ContentTableUIModel<D, C> model = ui.getModel();
|
|
| 71 |
+ ContentTableModel<D, C> tableModel = ui.getTableModel();
|
|
| 72 |
+ if (model.isModified() || model.isCanSaveRow()) {
|
|
| 73 |
+ |
|
| 74 |
+ // flush modified line to model
|
|
| 75 |
+ tableModel.updateRowFromEditBean();
|
|
| 76 |
+ }
|
|
| 77 |
+ |
|
| 78 |
+ List<C> objets = tableModel.getData();
|
|
| 69 | 79 |
boolean canContinue;
|
| 70 | 80 |
try {
|
| 71 | 81 |
canContinue = ui.getHandler().prepareSave(bean, objets);
|
| ... | ... | @@ -185,7 +185,7 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe |
| 185 | 185 |
if (model.isCreatingMode()) {
|
| 186 | 186 |
|
| 187 | 187 |
// on peut quitter le mode creation si le modele est non modifie et valide
|
| 188 |
- if (!(model.isEnabled() && model.isEditing() && (model.isModified() || !model.isValid()))) {
|
|
| 188 |
+ if (!(model.isEnabled() && model.isEditing() && (model.isGlobalModified() || !model.isValid()))) {
|
|
| 189 | 189 |
if (model.isEditing()) {
|
| 190 | 190 |
ui.stopEdit();
|
| 191 | 191 |
}
|
| ... | ... | @@ -196,7 +196,7 @@ public abstract class ContentUIHandler<U extends ContentUI> implements ObserveSe |
| 196 | 196 |
} else {
|
| 197 | 197 |
|
| 198 | 198 |
// on peut quiiter le mode mise a jour si le modele est non modifie
|
| 199 |
- if (!(model.isEnabled() && model.isEditing() && model.isModified())) {
|
|
| 199 |
+ if (!(model.isEnabled() && model.isEditing() && model.isGlobalModified())) {
|
|
| 200 | 200 |
if (model.isEditing()) {
|
| 201 | 201 |
ui.stopEdit();
|
| 202 | 202 |
}
|
| ... | ... | @@ -213,6 +213,10 @@ public abstract class ContentUIModel extends AbstractSerializableBean { |
| 213 | 213 |
return modified;
|
| 214 | 214 |
}
|
| 215 | 215 |
|
| 216 |
+ public boolean isGlobalModified() {
|
|
| 217 |
+ return isModified();
|
|
| 218 |
+ }
|
|
| 219 |
+ |
|
| 216 | 220 |
public void setModified(boolean modified) {
|
| 217 | 221 |
this.modified = modified;
|
| 218 | 222 |
firePropertyChange(PROPERTY_MODIFIED, modified);
|