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

Commits:

19 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java
    ... ... @@ -25,6 +25,7 @@ package fr.ird.observe.client.datasource.api;
    25 25
     import fr.ird.observe.client.configuration.ClientConfig;
    
    26 26
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceEvent;
    
    27 27
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceListenerAdapter;
    
    28
    +import fr.ird.observe.client.util.ProgressModel;
    
    28 29
     import fr.ird.observe.navigation.model.edit.ObserveEditModel;
    
    29 30
     import fr.ird.observe.navigation.model.select.ObserveSelectModel;
    
    30 31
     import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory;
    
    ... ... @@ -44,7 +45,6 @@ import io.ultreia.java4all.application.context.spi.GenerateApplicationComponent;
    44 45
     import org.apache.logging.log4j.LogManager;
    
    45 46
     import org.apache.logging.log4j.Logger;
    
    46 47
     
    
    47
    -import javax.swing.DefaultBoundedRangeModel;
    
    48 48
     import java.io.Closeable;
    
    49 49
     import java.io.File;
    
    50 50
     import java.util.ArrayList;
    
    ... ... @@ -217,7 +217,7 @@ public class ObserveDataSourcesManager implements Closeable {
    217 217
                     try {
    
    218 218
                         //FIXME:BodyContent Review progress model, not linked to ui any more...
    
    219 219
                         if (getProgressModel() == null) {
    
    220
    -                        setProgressModel(new DefaultBoundedRangeModel());
    
    220
    +                        setProgressModel(new ProgressModel());
    
    221 221
                         }
    
    222 222
                         create(createDto);
    
    223 223
                     } catch (IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) {
    

  • client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java
    ... ... @@ -29,6 +29,7 @@ import fr.ird.observe.client.configuration.WithClientConfig;
    29 29
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceEvent;
    
    30 30
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceListener;
    
    31 31
     import fr.ird.observe.client.datasource.dcp.FloatingObjectPresetsManager;
    
    32
    +import fr.ird.observe.client.util.ProgressModel;
    
    32 33
     import fr.ird.observe.client.util.UIHelper;
    
    33 34
     import fr.ird.observe.dto.IdDto;
    
    34 35
     import fr.ird.observe.dto.ObserveUtil;
    
    ... ... @@ -115,7 +116,7 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport imple
    115 116
         private final Icon icon;
    
    116 117
         private final ObserveServiceMainFactory serviceFactory;
    
    117 118
         private ObserveDataSourceConnection connection;
    
    118
    -    private BoundedRangeModel progressModel;
    
    119
    +    private ProgressModel progressModel;
    
    119 120
     
    
    120 121
         // indique que la connexion a expiré mais que la source n'est pas complétement fermer
    
    121 122
         private boolean expired;
    
    ... ... @@ -606,11 +607,11 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport imple
    606 607
             return servicesProvider.getService(serviceType);
    
    607 608
         }
    
    608 609
     
    
    609
    -    public BoundedRangeModel getProgressModel() {
    
    610
    +    public ProgressModel getProgressModel() {
    
    610 611
             return progressModel;
    
    611 612
         }
    
    612 613
     
    
    613
    -    public void setProgressModel(BoundedRangeModel progressModel) {
    
    614
    +    public void setProgressModel(ProgressModel progressModel) {
    
    614 615
             this.progressModel = progressModel;
    
    615 616
         }
    
    616 617
     
    

  • client-core/src/main/java/fr/ird/observe/client/util/ProgressModel.java
    ... ... @@ -38,4 +38,7 @@ public class ProgressModel extends DefaultBoundedRangeModel {
    38 38
             progressBar.setModel(this);
    
    39 39
         }
    
    40 40
     
    
    41
    +    public void increments() {
    
    42
    +        setValue(getValue() + 1);
    
    43
    +    }
    
    41 44
     }

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/actions/AdminTabUIActionSupport.java
    ... ... @@ -203,17 +203,17 @@ public abstract class AdminTabUIActionSupport<U extends AdminTabUI> extends JCom
    203 203
     
    
    204 204
         public WizardState prepareCopy(ProgressModel progressModel, ObserveSwingDataSource centralSource, String centralSourceLabel, ObserveSwingDataSource targetSource, String targetSourceLabel, Collection<String> idsToCopy) {
    
    205 205
     
    
    206
    -        progressModel.setExtent(1);
    
    206
    +        progressModel.increments();
    
    207 207
     
    
    208 208
             ReferentialService targetReferentialService = targetSource.getReferentialService();
    
    209 209
             ImmutableSetStringMap targetSourceReferential = targetReferentialService.getReferentialIds();
    
    210 210
             MissingReferentialRequest missingReferentialRequest = MissingReferentialRequest.of(targetSourceReferential, idsToCopy.toArray(new String[0]));
    
    211 211
             MissingReferentialResult missingReferentialResult = centralSource.getReferentialService().computeMissingReferential(missingReferentialRequest);
    
    212 212
     
    
    213
    -        progressModel.setExtent(1);
    
    213
    +        progressModel.increments();
    
    214 214
     
    
    215 215
             if (missingReferentialResult == null) {
    
    216
    -            progressModel.setExtent(1);
    
    216
    +            progressModel.increments();
    
    217 217
                 return WizardState.SUCCESSED;
    
    218 218
             }
    
    219 219
     
    
    ... ... @@ -250,7 +250,7 @@ public abstract class AdminTabUIActionSupport<U extends AdminTabUI> extends JCom
    250 250
                     sendMessage(t("observe.actions.exportData.message.add.missing.referential", decorator.toString(reference)));
    
    251 251
                 }
    
    252 252
             }
    
    253
    -        progressModel.setExtent(1);
    
    253
    +        progressModel.increments();
    
    254 254
             targetReferentialService.insertMissingReferential(missingReferentialResult.getSqlCode());
    
    255 255
             return WizardState.SUCCESSED;
    
    256 256
         }
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
    ... ... @@ -100,7 +100,7 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
    100 100
                 ImmutableSet.Builder<ConsolidateTripSeineDataResult> resultsBuilder = ImmutableSet.builder();
    
    101 101
                 for (String tripId : tripIds) {
    
    102 102
     
    
    103
    -                progressModel.setExtent(1);
    
    103
    +                progressModel.increments();
    
    104 104
                     sendMessage(t("observe.actions.consolidate.start.trip", ++index, nbTrips, tripId));
    
    105 105
     
    
    106 106
                     ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest();
    
    ... ... @@ -131,7 +131,7 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
    131 131
                     ObserveUtil.cleanMemory();
    
    132 132
                 }
    
    133 133
     
    
    134
    -            progressModel.setExtent(1);
    
    134
    +            progressModel.increments();
    
    135 135
                 ImmutableSet<ConsolidateTripSeineDataResult> results = resultsBuilder.build();
    
    136 136
     
    
    137 137
                 if (results.isEmpty()) {
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/export/actions/Start.java
    ... ... @@ -94,12 +94,12 @@ public class Start extends ExportUIActionSupport {
    94 94
             progressModel.setValue(0);
    
    95 95
     
    
    96 96
     
    
    97
    -        progressModel.setExtent(1);
    
    97
    +        progressModel.increments();
    
    98 98
             try (ObserveSwingDataSource localDataSource = openSource(stepModel.getSource())) {
    
    99 99
     
    
    100 100
                 TripManagementService localTripManagementService = localDataSource.getTripManagementService();
    
    101 101
     
    
    102
    -            progressModel.setExtent(1);
    
    102
    +            progressModel.increments();
    
    103 103
                 try (ObserveSwingDataSource centralDataSource = openSource(stepModel.getCentralSource())) {
    
    104 104
     
    
    105 105
                     TripManagementService centralTripManagementService = centralDataSource.getTripManagementService();
    
    ... ... @@ -113,7 +113,7 @@ public class Start extends ExportUIActionSupport {
    113 113
     
    
    114 114
                     for (TripEntry tripEntry : tripEntries) {
    
    115 115
     
    
    116
    -                    progressModel.setExtent(1);
    
    116
    +                    progressModel.increments();
    
    117 117
                         ExportTripRequest exportTripRequest = new ExportTripRequest(false, tripEntry.getProgramId(), tripEntry.getTripId());
    
    118 118
                         ExportTripResult exportTripResult = localTripManagementService.exportTrip(exportTripRequest);
    
    119 119
                         logExportResult(n("observe.actions.synchro.data.result.export.trip"),
    
    ... ... @@ -123,7 +123,7 @@ public class Start extends ExportUIActionSupport {
    123 123
                                         tripEntry.getProgram(),
    
    124 124
                                         tripEntry.getTrip());
    
    125 125
     
    
    126
    -                    progressModel.setExtent(1);
    
    126
    +                    progressModel.increments();
    
    127 127
                         ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
    
    128 128
                         ImportTripResult importTripResult = centralTripManagementService.importTrip(importTripRequest);
    
    129 129
                         logImportResult(n("observe.actions.synchro.data.result.import.trip"),
    
    ... ... @@ -138,7 +138,7 @@ public class Start extends ExportUIActionSupport {
    138 138
     
    
    139 139
                 }
    
    140 140
             }
    
    141
    -        progressModel.setExtent(1);
    
    141
    +        progressModel.increments();
    
    142 142
     
    
    143 143
             sendMessage(t("observe.actions.operation.message.done", new Date()));
    
    144 144
     
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/longline/pairing/actions/Prepare.java
    ... ... @@ -105,7 +105,7 @@ public class Prepare extends ActivityLonglinePairingUIActionSupport {
    105 105
                     log.info(sendMessage(String.format("[Program %d/%d - Trip %d/%d] Found %d logbook activities.", programIndex, nbProgram, tripIndex, nbTrip, tripLonglinePairingResult.getItems().size())));
    
    106 106
                     ActivityLonglinePairingTripNode activityLonglinePairingTripNode = new ActivityLonglinePairingTripNode(tripLonglinePairingResult);
    
    107 107
                     activityLonglinePairingProgramNode.add(activityLonglinePairingTripNode);
    
    108
    -                progressModel.setExtent(1);
    
    108
    +                progressModel.increments();
    
    109 109
                 }
    
    110 110
             }
    
    111 111
     
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/longline/pairing/tree/node/ActivityLonglinePairingActivityNode.java
    ... ... @@ -39,7 +39,7 @@ public class ActivityLonglinePairingActivityNode extends ActivityLonglinePairing
    39 39
     
    
    40 40
         ActivityLonglinePairingActivityNode(ActivityLonglinePairingResult userObject) {
    
    41 41
             super(Objects.requireNonNull(userObject), false);
    
    42
    -        this.selectedValue = userObject.getRelatedObservedActivity();
    
    42
    +        this.selectedValue = userObject.getSelectedRelatedObservedActivity();
    
    43 43
             if (selectedValue == null && !userObject.getItems().isEmpty()) {
    
    44 44
                 ActivityLonglinePairingResultItem activityLonglinePairingResultItem = userObject.getItems().get(0);
    
    45 45
                 setValueAt(activityLonglinePairingResultItem, 1);
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/synchronize/data/actions/Apply.java
    ... ... @@ -141,7 +141,7 @@ public class Apply extends DataSynchroUIActionSupport {
    141 141
     
    
    142 142
                 TripAware trip = task.getTrip();
    
    143 143
     
    
    144
    -            progressModel.setExtent(1);
    
    144
    +            progressModel.increments();
    
    145 145
     
    
    146 146
                 if (task instanceof DeleteFromLeftDataSynchronizeTask) {
    
    147 147
                     executeDeleteTask(programDecorator, program, trip,
    
    ... ... @@ -223,7 +223,7 @@ public class Apply extends DataSynchroUIActionSupport {
    223 223
                             program,
    
    224 224
                             trip);
    
    225 225
     
    
    226
    -        progressModel.setExtent(1);
    
    226
    +        progressModel.increments();
    
    227 227
             ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
    
    228 228
             ImportTripResult importTripResult = targetTripManagementService.importTrip(importTripRequest);
    
    229 229
             logImportResult(n("observe.actions.synchro.data.result.import.trip"),
    

  • client-datasource-actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java
    ... ... @@ -183,7 +183,7 @@ public class Start extends ValidateUIActionSupport {
    183 183
                 request.setValidationLengthWeightEnable(config.getValidationLengthWeightEnable());
    
    184 184
                 request.setValidationDisabledReferential(config.getValidationUseDisabledReferential());
    
    185 185
     
    
    186
    -            progressModel.setExtent(1);
    
    186
    +            progressModel.increments();
    
    187 187
     
    
    188 188
                 result = validateService.validateReferential(request);
    
    189 189
     
    
    ... ... @@ -218,7 +218,7 @@ public class Start extends ValidateUIActionSupport {
    218 218
     
    
    219 219
                     //noinspection unchecked
    
    220 220
                     sendMessage(t("observe.actions.validate.message.validate.trip", getDecoratorService().getDataReferenceDecorator((Class) dataReference.getReferenceType()).toString(dataReference)));
    
    221
    -                progressModel.setExtent(1);
    
    221
    +                progressModel.increments();
    
    222 222
     
    
    223 223
                     result = validateService.validateData(request);
    
    224 224
                     resultBuilder.addMessages(result.getData());
    
    ... ... @@ -229,7 +229,7 @@ public class Start extends ValidateUIActionSupport {
    229 229
     
    
    230 230
             } else throw new IllegalStateException();
    
    231 231
     
    
    232
    -        progressModel.setExtent(1);
    
    232
    +        progressModel.increments();
    
    233 233
             dataSourceToValidate.close();
    
    234 234
     
    
    235 235
             stepModel.setValidationResult(result);
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/DataSourceEditorBodyContent.java
    ... ... @@ -39,6 +39,7 @@ import fr.ird.observe.client.datasource.editor.menu.actions.ShowDataSourcePreset
    39 39
     import fr.ird.observe.client.main.ObserveMainUI;
    
    40 40
     import fr.ird.observe.client.main.body.HideBodyContentNotAcceptedException;
    
    41 41
     import fr.ird.observe.client.main.body.MainUIBodyContent;
    
    42
    +import fr.ird.observe.client.util.ProgressModel;
    
    42 43
     import fr.ird.observe.client.util.UIHelper;
    
    43 44
     import fr.ird.observe.client.util.busy.BusyModel;
    
    44 45
     import fr.ird.observe.navigation.model.edit.ObserveEditModel;
    
    ... ... @@ -49,7 +50,6 @@ import io.ultreia.java4all.util.SingletonSupplier;
    49 50
     import org.apache.logging.log4j.LogManager;
    
    50 51
     import org.apache.logging.log4j.Logger;
    
    51 52
     
    
    52
    -import javax.swing.BoundedRangeModel;
    
    53 53
     import java.beans.PropertyChangeListener;
    
    54 54
     import java.util.Set;
    
    55 55
     import java.util.function.Supplier;
    
    ... ... @@ -143,7 +143,7 @@ public class DataSourceEditorBodyContent extends MainUIBodyContent<DataSourceEdi
    143 143
     
    
    144 144
             log.info(String.format("loading ui for storage %s: %s", dataSource.getLabel(), mainUI));
    
    145 145
     
    
    146
    -        BoundedRangeModel progressModel = dataSource.getProgressModel();
    
    146
    +        ProgressModel progressModel = dataSource.getProgressModel();
    
    147 147
     
    
    148 148
             ObserveEditModel navigationEditModel = null;
    
    149 149
             try {
    
    ... ... @@ -180,7 +180,7 @@ public class DataSourceEditorBodyContent extends MainUIBodyContent<DataSourceEdi
    180 180
     
    
    181 181
             get().getHandler().loadNavigationUI(dataSource, progressModel);
    
    182 182
     
    
    183
    -        progressModel.setExtent(1);
    
    183
    +        progressModel.increments();
    
    184 184
     
    
    185 185
         }
    
    186 186
     
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/DataSourceEditorHandler.java
    ... ... @@ -33,9 +33,9 @@ import fr.ird.observe.client.datasource.editor.tree.navigation.NavigationTreeMod
    33 33
     import fr.ird.observe.client.datasource.editor.tree.navigation.nodes.NavigationTreeNodeSupport;
    
    34 34
     import fr.ird.observe.client.datasource.editor.tree.navigation.nodes.ReferenceNavigationTreeNodeSupport;
    
    35 35
     import fr.ird.observe.client.datasource.editor.tree.navigation.nodes.StringNavigationTreeNodeSupport;
    
    36
    -import fr.ird.observe.client.main.MainUIModel;
    
    37 36
     import fr.ird.observe.client.util.ObserveSwingValidatorMessageTableModel;
    
    38 37
     import fr.ird.observe.client.util.ObserveValidatorMessageTableRenderer;
    
    38
    +import fr.ird.observe.client.util.ProgressModel;
    
    39 39
     import fr.ird.observe.client.util.UIHelper;
    
    40 40
     import fr.ird.observe.client.util.busy.BusyModel;
    
    41 41
     import fr.ird.observe.client.util.session.WithObserveSwingSessionHelper;
    
    ... ... @@ -49,7 +49,6 @@ import org.apache.logging.log4j.Logger;
    49 49
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    50 50
     import org.nuiton.jaxx.validator.swing.SwingValidatorUtil;
    
    51 51
     
    
    52
    -import javax.swing.BoundedRangeModel;
    
    53 52
     import javax.swing.SwingUtilities;
    
    54 53
     import javax.swing.event.TreeSelectionEvent;
    
    55 54
     import javax.swing.tree.TreePath;
    
    ... ... @@ -251,13 +250,13 @@ public class DataSourceEditorHandler implements UIHandler<DataSourceEditor>, Wit
    251 250
          * @param servicesProvider services provider to load navigation model
    
    252 251
          * @param progressModel    the progress model to interact with ui
    
    253 252
          */
    
    254
    -    public void loadNavigationUI(ObserveServicesProvider servicesProvider, BoundedRangeModel progressModel) {
    
    253
    +    public void loadNavigationUI(ObserveServicesProvider servicesProvider, ProgressModel progressModel) {
    
    255 254
     
    
    256 255
             NavigationTree tree = ui.getNavigationUI().getTree();
    
    257 256
     
    
    258 257
             NavigationTreeModel treeModel = tree.getModel();
    
    259 258
             treeModel.populate(servicesProvider);
    
    260
    -        progressModel.setExtent(1);
    
    259
    +        progressModel.increments();
    
    261 260
     
    
    262 261
             // select initial node
    
    263 262
             try {
    
    ... ... @@ -265,7 +264,7 @@ public class DataSourceEditorHandler implements UIHandler<DataSourceEditor>, Wit
    265 264
             } catch (Exception e) {
    
    266 265
                 log.error("Could not load initial node", e);
    
    267 266
             }
    
    268
    -        progressModel.setExtent(1);
    
    267
    +        progressModel.increments();
    
    269 268
     
    
    270 269
             tree.setVisible(true);
    
    271 270
     
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageBackupUILauncher.java
    ... ... @@ -158,11 +158,11 @@ public class StorageBackupUILauncher extends StorageUILauncher {
    158 158
     
    
    159 159
                             ExportTripRequest exportRequest = new ExportTripRequest(false, entry.getKey().getId(), trip.getId());
    
    160 160
                             ExportTripResult exportTripResult = managementService.exportTrip(exportRequest);
    
    161
    -                        progressModel.setExtent(1);
    
    161
    +                        progressModel.increments();
    
    162 162
     
    
    163 163
                             ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
    
    164 164
                             tmpManagementService.importTrip(importTripRequest);
    
    165
    -                        progressModel.setExtent(1);
    
    165
    +                        progressModel.increments();
    
    166 166
     
    
    167 167
                         }
    
    168 168
     
    
    ... ... @@ -175,13 +175,13 @@ public class StorageBackupUILauncher extends StorageUILauncher {
    175 175
                 }
    
    176 176
     
    
    177 177
                 sourceToBackup.getDataSourceService().backup(backupFile);
    
    178
    -            progressModel.setExtent(1);
    
    178
    +            progressModel.increments();
    
    179 179
     
    
    180 180
             } catch (DatabaseNotFoundException | DatabaseConnexionNotAuthorizedException | BabModelVersionException | IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) {
    
    181 181
                 throw new ObserveSwingTechnicalException(e);
    
    182 182
             } finally {
    
    183 183
     
    
    184
    -            progressModel.setExtent(1);
    
    184
    +            progressModel.increments();
    
    185 185
                 if (sourceToBackup != localSource) {
    
    186 186
                     sourceToBackup.close();
    
    187 187
                 }
    

  • dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/ActivityReference.java
    ... ... @@ -34,8 +34,8 @@ public class ActivityReference extends GeneratedActivityReference {
    34 34
     
    
    35 35
         private transient GPSPoint gpsPoint;
    
    36 36
     
    
    37
    -    public ActivityReference(DtoReferenceAware dto, Date startTimeStamp, Date endTimeStamp, Float latitude, Float longitude, String vesselActivityId, String vesselActivityLabel, SetReference set, SampleReference sample, String activityId) {
    
    38
    -        super(dto, startTimeStamp, endTimeStamp, latitude, longitude, vesselActivityId, vesselActivityLabel, set, sample, activityId);
    
    37
    +    public ActivityReference(DtoReferenceAware dto, Date startTimeStamp, Date endTimeStamp, Float latitude, Float longitude, String vesselActivityId, String vesselActivityLabel, SetReference set, SampleReference sample, fr.ird.observe.dto.data.ll.observation.ActivityReference activity) {
    
    38
    +        super(dto, startTimeStamp, endTimeStamp, latitude, longitude, vesselActivityId, vesselActivityLabel, set, sample, activity);
    
    39 39
         }
    
    40 40
     
    
    41 41
         public ActivityReference(DtoReferenceAware dto) {
    

  • dto/src/main/models/Observe-31-data-ll-logbook.model
    ... ... @@ -20,7 +20,7 @@ longitude + {*:1} Float
    20 20
     quadrant + {*:1} Integer
    
    21 21
     samplePart + {*} fr.ird.observe.dto.data.ll.logbook.SamplePartDto | ordered
    
    22 22
     
    
    23
    -data.ll.logbook.Activity > data.Openable >> data.ActivityAware | references=startTimeStamp,endTimeStamp,latitude,longitude,vesselActivityId,vesselActivityLabel,set,sample,relatedObservedActivityId
    
    23
    +data.ll.logbook.Activity > data.Openable >> data.ActivityAware | references=startTimeStamp,endTimeStamp,latitude,longitude,vesselActivityId,vesselActivityLabel,set,sample,relatedObservedActivity
    
    24 24
     startTimeStamp + {*:1} Date | notNull
    
    25 25
     endTimeStamp + {*:1} Date | mayNotNull
    
    26 26
     latitude + {*:1} Float | mayNotNull
    

  • pom.xml
    ... ... @@ -24,7 +24,7 @@
    24 24
       <parent>
    
    25 25
         <groupId>io.ultreia.maven</groupId>
    
    26 26
         <artifactId>pom</artifactId>
    
    27
    -    <version>2020.34</version>
    
    27
    +    <version>2020.35</version>
    
    28 28
       </parent>
    
    29 29
     
    
    30 30
       <groupId>fr.ird.observe</groupId>
    
    ... ... @@ -162,15 +162,15 @@
    162 162
         <maven.build.timestamp.format>dd/MM/yyyy HH:mm z</maven.build.timestamp.format>
    
    163 163
         <buildDate>${maven.build.timestamp}</buildDate>
    
    164 164
     
    
    165
    -    <lib.version.toolkit>4.33</lib.version.toolkit>
    
    165
    +    <lib.version.toolkit>4.34-SNAPSHOT</lib.version.toolkit>
    
    166 166
         <lib.version.nuiton.validation>3.1</lib.version.nuiton.validation>
    
    167 167
         <!--can't use 1.4.197 (date has changed + blob also)-->
    
    168 168
         <lib.version.h2>1.4.196</lib.version.h2>
    
    169 169
         <lib.version.nuiton.utils>3.0</lib.version.nuiton.utils>
    
    170 170
     
    
    171 171
         <!--    <lib.version.java4all.topia>1.17</lib.version.java4all.topia>-->
    
    172
    -    <!--<lib.version.java4all.eugene>3.0<-alpha-22</lib.version.java4all.eugene>-->
    
    173
    -    <lib.version.java4all.jaxx>3.0-alpha-72-SNAPSHOT</lib.version.java4all.jaxx>
    
    172
    +<!--    <lib.version.java4all.eugene>3.0-alpha-34-SNAPSHOT</lib.version.java4all.eugene>-->
    
    173
    +<!--    <lib.version.java4all.jaxx>3.0-alpha-72-SNAPSHOT</lib.version.java4all.jaxx>-->
    
    174 174
         <!--<lib.version.java4all.application-context>1.0.3-SNAPSHOT</lib.version.java4all.application-context>-->
    
    175 175
         <!--<lib.version.java4all.application-template>1.0.2-SNAPSHOT</lib.version.java4all.application-template>-->
    
    176 176
         <!--<lib.version.java4all.i18n>4.0-beta-3-SNAPSHOT</lib.version.java4all.i18n>-->
    

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingEngine.java
    ... ... @@ -33,10 +33,8 @@ import fr.ird.observe.services.service.data.ll.logbook.ActivityService;
    33 33
     
    
    34 34
     import java.util.ArrayList;
    
    35 35
     import java.util.Collection;
    
    36
    -import java.util.Date;
    
    37 36
     import java.util.List;
    
    38 37
     import java.util.Set;
    
    39
    -import java.util.concurrent.TimeUnit;
    
    40 38
     
    
    41 39
     /**
    
    42 40
      * Created by tchemit on 15/10/2018.
    
    ... ... @@ -74,7 +72,7 @@ public class ActivityLonglinePairingEngine {
    74 72
             ImmutableList<ActivityReference> activityLonglineObsList = context.getActivityLonglineObsList(activityLonglineLogbook);
    
    75 73
             List<ActivityLonglinePairingResultItem> itemBuilder = new ArrayList<>(activityLonglineObsList.size());
    
    76 74
             for (ActivityReference activityLonglineObs : activityLonglineObsList) {
    
    77
    -            itemBuilder.add(toActivityResultItem(activityLonglineLogbook, activityLonglineObs));
    
    75
    +            itemBuilder.add(ActivityLonglinePairingResultItem.create(activityLonglineLogbook, activityLonglineObs));
    
    78 76
             }
    
    79 77
             itemBuilder.sort(ActivityLonglinePairingResult.COMPARATOR);
    
    80 78
             fr.ird.observe.dto.data.ll.logbook.ActivityReference reference;
    
    ... ... @@ -86,12 +84,4 @@ public class ActivityLonglinePairingEngine {
    86 84
             return new ActivityLonglinePairingResult(reference, ImmutableList.copyOf(itemBuilder));
    
    87 85
         }
    
    88 86
     
    
    89
    -    private ActivityLonglinePairingResultItem toActivityResultItem(ActivityAware activityLonglineLogbook, ActivityReference activityLonglineObsReference) {
    
    90
    -        Date logbookTimeStamp = activityLonglineLogbook.getTimeStamp();
    
    91
    -        Date obsTimeStamp = activityLonglineObsReference.getTimeStamp();
    
    92
    -        long computedTime = TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS);
    
    93
    -        double computedDistance = activityLonglineLogbook.getGPSPoint().getDistanceInKm(activityLonglineObsReference.getGPSPoint());
    
    94
    -        return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance);
    
    95
    -    }
    
    96
    -
    
    97 87
     }

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResult.java
    ... ... @@ -40,18 +40,21 @@ public class ActivityLonglinePairingResult implements ObserveDto {
    40 40
     
    
    41 41
         private final ActivityReference activityLonglineLogbook;
    
    42 42
         private final ImmutableList<ActivityLonglinePairingResultItem> items;
    
    43
    +    private final ActivityLonglinePairingResultItem selectedRelatedObservedActivity;
    
    43 44
     
    
    44 45
         public ActivityLonglinePairingResult(ActivityReference activityLonglineLogbook, ImmutableList<ActivityLonglinePairingResultItem> items) {
    
    45 46
             this.activityLonglineLogbook = Objects.requireNonNull(activityLonglineLogbook);
    
    46 47
             this.items = Objects.requireNonNull(items);
    
    48
    +        fr.ird.observe.dto.data.ll.observation.ActivityReference relatedObservedActivity = activityLonglineLogbook.getRelatedObservedActivity();
    
    49
    +        selectedRelatedObservedActivity = relatedObservedActivity == null
    
    50
    +                ? null
    
    51
    +                : items.stream().filter(s -> relatedObservedActivity.equals(s.getObservationActivity()))
    
    52
    +                .findFirst()
    
    53
    +                .orElse(ActivityLonglinePairingResultItem.create(activityLonglineLogbook, relatedObservedActivity));
    
    47 54
         }
    
    48 55
     
    
    49
    -    public ActivityLonglinePairingResultItem getRelatedObservedActivity() {
    
    50
    -        String relatedObservedActivityId = activityLonglineLogbook.getRelatedObservedActivityId();
    
    51
    -        if (relatedObservedActivityId != null) {
    
    52
    -            return items.stream().filter(s -> relatedObservedActivityId.equals(s.getObservationActivity().getId())).findFirst().orElseThrow(IllegalStateException::new);
    
    53
    -        }
    
    54
    -        return null;
    
    56
    +    public ActivityLonglinePairingResultItem getSelectedRelatedObservedActivity() {
    
    57
    +        return selectedRelatedObservedActivity;
    
    55 58
         }
    
    56 59
     
    
    57 60
         public ActivityReference getActivityLonglineLogbook() {
    

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResultItem.java
    ... ... @@ -22,10 +22,12 @@ package fr.ird.observe.services.service.data.ll.pairing;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import fr.ird.observe.dto.data.ActivityAware;
    
    25 26
     import fr.ird.observe.dto.data.ll.observation.ActivityReference;
    
    26 27
     import fr.ird.observe.dto.spi.SimpleDto;
    
    27 28
     import io.ultreia.java4all.lang.Numbers;
    
    28 29
     
    
    30
    +import java.util.Date;
    
    29 31
     import java.util.Objects;
    
    30 32
     import java.util.concurrent.TimeUnit;
    
    31 33
     
    
    ... ... @@ -43,7 +45,15 @@ public class ActivityLonglinePairingResultItem implements SimpleDto {
    43 45
         private final float computedDistance;
    
    44 46
         private String computedTimeStr;
    
    45 47
     
    
    46
    -    public ActivityLonglinePairingResultItem(ActivityReference observationActivity, long computedTime, double computedDistance) {
    
    48
    +    public static ActivityLonglinePairingResultItem create(ActivityAware activityLonglineLogbook, ActivityReference activityLonglineObsReference) {
    
    49
    +        Date logbookTimeStamp = activityLonglineLogbook.getTimeStamp();
    
    50
    +        Date obsTimeStamp = activityLonglineObsReference.getTimeStamp();
    
    51
    +        long computedTime = TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS);
    
    52
    +        double computedDistance = activityLonglineLogbook.getGPSPoint().getDistanceInKm(activityLonglineObsReference.getGPSPoint());
    
    53
    +        return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance);
    
    54
    +    }
    
    55
    +
    
    56
    +    protected ActivityLonglinePairingResultItem(ActivityReference observationActivity, long computedTime, double computedDistance) {
    
    47 57
             this.observationActivity = observationActivity;
    
    48 58
             this.computedTime = computedTime;
    
    49 59
             this.computedDistance = Numbers.roundTwoDigits((float) computedDistance);