Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
c61b184c
by Tony Chemit at 2022-12-12T18:59:48+01:00
-
232a7207
by Tony Chemit at 2022-12-12T18:59:53+01:00
9 changed files:
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
Changes:
| ... | ... | @@ -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
|
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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 | } |
| ... | ... | @@ -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();
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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
|
| ... | ... | @@ -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);
|