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

Commits:

3 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/actions/content/api/data/table/SaveTableDataUIAction.java
    ... ... @@ -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);
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIHandler.java
    ... ... @@ -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
                     }
    

  • client-core/src/main/java/fr/ird/observe/client/ui/content/api/ContentUIModel.java
    ... ... @@ -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);