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

Commits:

9 changed files:

Changes:

  • client/datasource/actions/src/main/i18n/getters/java.getter
    ... ... @@ -38,6 +38,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges
    38 38
     observe.ui.datasource.editor.actions.consolidate.message.operation.done
    
    39 39
     observe.ui.datasource.editor.actions.consolidate.message.save.changes
    
    40 40
     observe.ui.datasource.editor.actions.consolidate.message.trip
    
    41
    +observe.ui.datasource.editor.actions.consolidate.skip.trip
    
    41 42
     observe.ui.datasource.editor.actions.consolidate.start.trip
    
    42 43
     observe.ui.datasource.editor.actions.consolidate.title
    
    43 44
     observe.ui.datasource.editor.actions.consolidate.title.tip
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
    ... ... @@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.actions.config;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import fr.ird.observe.client.datasource.actions.AdminStep;
    
    25 26
     import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
    
    26 27
     import fr.ird.observe.client.datasource.actions.AdminUIModel;
    
    27 28
     import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI;
    
    ... ... @@ -33,6 +34,7 @@ import fr.ird.observe.client.util.UIHelper;
    33 34
     import fr.ird.observe.navigation.tree.selection.SelectionTree;
    
    34 35
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    35 36
     import org.nuiton.jaxx.runtime.swing.SwingUtil;
    
    37
    +import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
    
    36 38
     
    
    37 39
     import javax.swing.SwingUtilities;
    
    38 40
     import java.awt.GridBagConstraints;
    
    ... ... @@ -104,4 +106,16 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme
    104 106
             ui.getSUCCESSED_panel().removeAll();
    
    105 107
             ui.getSUCCESSED_panel().add(SwingUtil.boxComponentWithJxLayer(ui.getSelectTreePane()), new GridBagConstraints(0, 0, 1, 1, 1.0, 1, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
    
    106 108
         }
    
    109
    +
    
    110
    +    @Override
    
    111
    +    protected void onComingFromNextStep(AdminStep oldStep) {
    
    112
    +        AdminUIModel model = ui.getModel();
    
    113
    +        if (model.containsOperation(AdminStep.CONSOLIDATE) && !model.containsOperation(AdminStep.EXPORT_DATA)) {
    
    114
    +            if (model.getStepState(AdminStep.CONSOLIDATE) == WizardState.SUCCESSED) {
    
    115
    +                // set back to pending consolidate step
    
    116
    +                model.setStepState(AdminStep.CONSOLIDATE, WizardState.PENDING);
    
    117
    +            }
    
    118
    +        }
    
    119
    +        super.onComingFromNextStep(oldStep);
    
    120
    +    }
    
    107 121
     }

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
    ... ... @@ -30,6 +30,9 @@ import org.apache.logging.log4j.LogManager;
    30 30
     import org.apache.logging.log4j.Logger;
    
    31 31
     import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
    
    32 32
     
    
    33
    +import java.util.Set;
    
    34
    +import java.util.TreeSet;
    
    35
    +
    
    33 36
     /**
    
    34 37
      * Modele pour preparer une validation de donnees d'une base.
    
    35 38
      *
    
    ... ... @@ -43,9 +46,14 @@ public class ConsolidateModel extends AdminActionModel {
    43 46
          * Data source to use for operation.
    
    44 47
          */
    
    45 48
         private ObserveSwingDataSource source;
    
    49
    +    /**
    
    50
    +     * To track trip that has already been consolidated (they won't be again processed).
    
    51
    +     */
    
    52
    +    private final Set<String> alreadyDoneTripIds;
    
    46 53
     
    
    47 54
         public ConsolidateModel() {
    
    48 55
             super(AdminStep.CONSOLIDATE);
    
    56
    +        this.alreadyDoneTripIds = new TreeSet<>();
    
    49 57
         }
    
    50 58
     
    
    51 59
         public ObserveSwingDataSource getSource() {
    
    ... ... @@ -80,4 +88,11 @@ public class ConsolidateModel extends AdminActionModel {
    80 88
             return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED;
    
    81 89
         }
    
    82 90
     
    
    91
    +    public boolean checkIfTripAlreadyProcessed(String tripId) {
    
    92
    +        return alreadyDoneTripIds.contains(tripId);
    
    93
    +    }
    
    94
    +
    
    95
    +    public void setTripProcessed(String tripId) {
    
    96
    +        alreadyDoneTripIds.add(tripId);
    
    97
    +    }
    
    83 98
     }

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
    ... ... @@ -96,10 +96,21 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
    96 96
                 for (String tripId : tripIds) {
    
    97 97
     
    
    98 98
                     progressModel.increments();
    
    99
    +
    
    100
    +                if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
    
    101
    +                    // this one has already been processed
    
    102
    +                    sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", ++index, nbTrips, tripId));
    
    103
    +                    progressModel.increments();
    
    104
    +                    continue;
    
    105
    +                }
    
    99 106
                     sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", ++index, nbTrips, tripId));
    
    100 107
     
    
    108
    +                // mark trip processed
    
    109
    +                stepModel.setTripProcessed(tripId);
    
    110
    +
    
    101 111
                     if (TripAware.isLonglineId(tripId)) {
    
    102 112
                         // can't consolidate LL trips...
    
    113
    +                    progressModel.increments();
    
    103 114
                         continue;
    
    104 115
                     }
    
    105 116
                     TripConsolidateRequest request = new TripConsolidateRequest();
    

  • client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
    ... ... @@ -191,7 +191,7 @@ public class ReportModel extends AdminActionModel {
    191 191
             // l'onglet de sélection des données soit ok
    
    192 192
             ReportModel reportModel = uiModel.getReportModel();
    
    193 193
             List<Report> reports = reportModel.getReports();
    
    194
    -        return uiModel.validate(AdminStep.SELECT_DATA) && reports != null && !reports.isEmpty();
    
    194
    +        return uiModel.validate(AdminStep.CONSOLIDATE) && reports != null && !reports.isEmpty();
    
    195 195
         }
    
    196 196
     
    
    197 197
         @Override
    

  • client/runner/src/main/i18n/translations/client-runner_en_GB.properties
    ... ... @@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No data modif
    477 477
     observe.ui.datasource.editor.actions.consolidate.message.operation.done=Consolidate operation done in %1$s.
    
    478 478
     observe.ui.datasource.editor.actions.consolidate.message.save.changes=Save modified  %1$s trip(s).
    
    479 479
     observe.ui.datasource.editor.actions.consolidate.message.trip=Data consolidate for trip [%s] %s
    
    480
    +observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
    
    480 481
     observe.ui.datasource.editor.actions.consolidate.start.trip=Start consolidate data on trip %s / %s (%s)
    
    481 482
     observe.ui.datasource.editor.actions.consolidate.title=Consolidate data
    
    482 483
     observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidate observed data
    

  • client/runner/src/main/i18n/translations/client-runner_es_ES.properties
    ... ... @@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No modificaci
    477 477
     observe.ui.datasource.editor.actions.consolidate.message.operation.done=Operación de calculo de datos terminada en %1$s.
    
    478 478
     observe.ui.datasource.editor.actions.consolidate.message.save.changes=Guardar las modificaciones de la(s) %1$s marea(s) modificada(s).
    
    479 479
     observe.ui.datasource.editor.actions.consolidate.message.trip=Datos calculados para la marea [%s] %s
    
    480
    +observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
    
    480 481
     observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s) \#TODO
    
    481 482
     observe.ui.datasource.editor.actions.consolidate.title=Consolidar los datos
    
    482 483
     observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidar los datos
    

  • client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
    ... ... @@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=Aucune donné
    477 477
     observe.ui.datasource.editor.actions.consolidate.message.operation.done=Opération de calcul des données terminée à %1$s.
    
    478 478
     observe.ui.datasource.editor.actions.consolidate.message.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s).
    
    479 479
     observe.ui.datasource.editor.actions.consolidate.message.trip=Données calculées pour la marée [%s] %s.
    
    480
    +observe.ui.datasource.editor.actions.consolidate.skip.trip=Marée déjà consolidée %s / %s (%s)
    
    480 481
     observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s)
    
    481 482
     observe.ui.datasource.editor.actions.consolidate.title=Consolider les données observateur
    
    482 483
     observe.ui.datasource.editor.actions.consolidate.title.tip=Consolider les données observateur
    

  • toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
    ... ... @@ -30,6 +30,9 @@ import fr.ird.observe.dto.report.ReportOperationConsumer;
    30 30
     import fr.ird.observe.dto.report.ReportRequestExecutor;
    
    31 31
     import fr.ird.observe.dto.report.ReportVariable;
    
    32 32
     
    
    33
    +import java.util.Arrays;
    
    34
    +import java.util.LinkedList;
    
    35
    +import java.util.List;
    
    33 36
     import java.util.Set;
    
    34 37
     
    
    35 38
     /**
    
    ... ... @@ -62,25 +65,26 @@ public class ComputeDynamicHeader implements ReportOperationConsumer {
    62 65
             String repeatVariableName = split[1].trim();
    
    63 66
             ReportVariable<Object> repeatVariable1 = report.getRepeatVariable(repeatVariableName);
    
    64 67
             Set<?> repeatVariableValues = repeatVariable1.getValues();
    
    65
    -        int columnIndex = 0;
    
    66
    -        DataMatrix tmpMatrix = createTmpMatrix(0, 0, incoming.getWidth(), 1);
    
    68
    +        List<String> columnNames = new LinkedList<>(Arrays.asList(fixedColumnNames));
    
    67 69
             boolean useNullRepeatVariableValue = false;
    
    68
    -        for (String beginHeader : fixedColumnNames) {
    
    69
    -            tmpMatrix.setValue(columnIndex++, 0, beginHeader);
    
    70
    -        }
    
    71 70
             for (Object repeatVariable : repeatVariableValues) {
    
    72 71
                 if (repeatVariable == null) {
    
    73 72
                     useNullRepeatVariableValue = true;
    
    74 73
                 } else {
    
    75 74
                     if (repeatVariable instanceof WithI18n) {
    
    76
    -                    tmpMatrix.setValue(columnIndex++, 0, ((WithI18n) repeatVariable).getLabel2());
    
    75
    +                    columnNames.add(((WithI18n) repeatVariable).getLabel2());
    
    77 76
                     } else {
    
    78
    -                    tmpMatrix.setValue(columnIndex++, 0, repeatVariable.toString());
    
    77
    +                    columnNames.add(repeatVariable.toString());
    
    79 78
                     }
    
    80 79
                 }
    
    81 80
             }
    
    82 81
             if (useNullRepeatVariableValue || repeatVariable1.isAddNullValue()) {
    
    83
    -            tmpMatrix.setValue(columnIndex, 0, "Aucun");
    
    82
    +            columnNames.add("Aucun");
    
    83
    +        }
    
    84
    +        int columnIndex = 0;
    
    85
    +        DataMatrix tmpMatrix = createTmpMatrix(0, 0, columnNames.size(), 1);
    
    86
    +        for (String columnName : columnNames) {
    
    87
    +            tmpMatrix.setValue(columnIndex++, 0, columnName);
    
    84 88
             }
    
    85 89
             incoming.setY(1);
    
    86 90
             return DataMatrix.merge(incoming, tmpMatrix);