This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit c50c231be23a2a764c09cf7e644253ed0c7e1af4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 17 12:40:43 2016 +0100 Amélioration de l'opération de consolidation --- .../ui/admin/consolidate/ConsolidateModel.java | 7 ++- .../ui/admin/consolidate/ConsolidateUIHandler.java | 41 ++++++++++------ .../application/swing/ui/util/ProgressModel.java | 54 ++++++++++++++++++++++ .../ConsolidateDataServiceController.java | 6 +-- application-web/src/main/resources/mapping | 2 +- .../ConsolidateDataServiceRestTest.java | 15 +++--- .../consolidate/ConsolidateDataServiceTopia.java | 17 ++----- .../ConsolidateDataServiceTopiaTest.java | 18 ++++---- .../consolidate/ConsolidateDataService.java | 5 +- .../ConsolidateTripSeineDataRequest.java | 15 +++--- 10 files changed, 119 insertions(+), 61 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateModel.java index 7a121cd..d717c39 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateModel.java @@ -25,6 +25,7 @@ import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.admin.AdminActionModel; import fr.ird.observe.application.swing.ui.admin.AdminStep; import fr.ird.observe.application.swing.ui.admin.AdminUIModel; +import fr.ird.observe.application.swing.ui.util.ProgressModel; import jaxx.runtime.swing.wizard.ext.WizardState; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -44,7 +45,7 @@ public class ConsolidateModel extends AdminActionModel { /** la source de données où effectuer la consolidation des données */ private ObserveSwingDataSource source; - + private final ProgressModel progressModel = new ProgressModel(); public ConsolidateModel() { super(AdminStep.CONSOLIDATE); } @@ -82,4 +83,8 @@ public class ConsolidateModel extends AdminActionModel { public boolean validate(AdminUIModel uiModel) { return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED; } + + public ProgressModel getProgressModel() { + return progressModel; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java index d611669..945338d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/consolidate/ConsolidateUIHandler.java @@ -25,6 +25,7 @@ import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.admin.AdminTabUIHandler; +import fr.ird.observe.application.swing.ui.util.ProgressModel; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.service.actions.consolidate.ConsolidateActivitySeineDataResult; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; @@ -57,6 +58,8 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple super.afterInit(ui); ui.getStartButton().setText(t("observe.actions.synchro.launch.operation", t(ui.getStep().getOperationLabel()))); MnemonicHelper.addKeyStrokeFromMnemonic(ui.getStartButton()); + + getStepModel().getProgressModel().installUI(ui.getProgressBar()); } public ConsolidateModel getStepModel() { @@ -80,35 +83,43 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple .map(DataReference.ID_FUNCTION) .collect(Collectors.toSet())); + ProgressModel progressModel = getStepModel().getProgressModel(); + progressModel.setStepsCount(tripIds.size()); + try (ObserveSwingDataSource dataSource = getStepModel().getSource()) { ConsolidateDataService consolidateDataService = dataSource.newConsolidateDataService(); - ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); - request.setTripSeineIds(tripIds); - request.setFailIfLenghtWeightParameterNotFound(false); - - ImmutableSet<ConsolidateTripSeineDataResult> results = consolidateDataService.consolidateTripSeines(request); - - if (results.isEmpty()) { - - sendMessage(t("observe.actions.consolidate.message.noChanges")); - - } else { + ImmutableSet.Builder<ConsolidateTripSeineDataResult> resultsBuilder = ImmutableSet.builder(); + for (String tripId : tripIds) { - for (ConsolidateTripSeineDataResult tripSeineDataResult : results) { + progressModel.incrementsCurrentStep(); + ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); + request.setTripSeineId(tripId); + request.setFailIfLenghtWeightParameterNotFound(false); + ConsolidateTripSeineDataResult result = consolidateDataService.consolidateTripSeine(request); + if (result != null) { - String tripSeineLabel = tripSeineDataResult.getTripSeineLabel(); + String tripSeineLabel = result.getTripSeineLabel(); sendMessage(t("observe.actions.consolidate.message.trip", tripSeineLabel)); - for (ConsolidateActivitySeineDataResult activitySeineDataResult : tripSeineDataResult.getConsolidateActivitySeineDataResults()) { + for (ConsolidateActivitySeineDataResult activitySeineDataResult : result.getConsolidateActivitySeineDataResults()) { sendMessage(t("observe.actions.consolidate.message.activity", activitySeineDataResult.getActivitySeineLabel())); } - + resultsBuilder.add(result); } + } + + ImmutableSet<ConsolidateTripSeineDataResult> results = resultsBuilder.build(); + + if (results.isEmpty()) { + + sendMessage(t("observe.actions.consolidate.message.noChanges")); + + } else { sendMessage(t("observe.actions.consolidate.message.save.changes", results.size())); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/ProgressModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/ProgressModel.java new file mode 100644 index 0000000..550f7a0 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/util/ProgressModel.java @@ -0,0 +1,54 @@ +package fr.ird.observe.application.swing.ui.util; + +import org.jdesktop.beans.AbstractBean; + +import javax.swing.JProgressBar; + +/** + * Created on 17/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class ProgressModel extends AbstractBean { + + public static final String PROPERTY_CURRENT_STEP = "currentStep"; + public static final String PROPERTY_STEPS_COUNT = "stepsCount"; + private int currentStep; + private int stepsCount; + + public void installUI(JProgressBar progressBar) { + progressBar.setVisible(true); + addPropertyChangeListener(PROPERTY_CURRENT_STEP, evt -> { + int newValue = (int) evt.getNewValue(); + progressBar.setValue(newValue); + progressBar.setString((int) (progressBar.getPercentComplete() * 100) + "%"); + + }); + addPropertyChangeListener(PROPERTY_STEPS_COUNT, evt -> progressBar.setMaximum((Integer) evt.getNewValue())); + } + + public int getCurrentStep() { + return currentStep; + } + + public void setCurrentStep(int currentStep) { + int oldValue = this.currentStep; + this.currentStep = currentStep; + firePropertyChange(PROPERTY_CURRENT_STEP, oldValue, currentStep); + } + + public void setStepsCount(int stepsCount) { + int oldValue = this.stepsCount; + this.stepsCount = stepsCount; + firePropertyChange(PROPERTY_STEPS_COUNT, oldValue, stepsCount); + } + + public int getStepsCount() { + return stepsCount; + } + + public void incrementsCurrentStep() { + setCurrentStep(getCurrentStep() + 1); + } +} diff --git a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java index 8a05314..6cc0818 100644 --- a/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java +++ b/application-web/src/main/java/fr/ird/observe/application/web/controller/v1/actions/consolidate/ConsolidateDataServiceController.java @@ -22,7 +22,6 @@ package fr.ird.observe.application.web.controller.v1.actions.consolidate; * #L% */ -import com.google.common.collect.ImmutableSet; import fr.ird.observe.application.web.controller.v1.ObserveAuthenticatedServiceControllerSupport; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineDataRequest; @@ -38,7 +37,8 @@ public class ConsolidateDataServiceController extends ObserveAuthenticatedServic } @Override - public ImmutableSet<ConsolidateTripSeineDataResult> consolidateTripSeines(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest) { - return service.consolidateTripSeines(consolidateTripSeineDataRequest); + public ConsolidateTripSeineDataResult consolidateTripSeine(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest) { + return service.consolidateTripSeine(consolidateTripSeineDataRequest); } + } diff --git a/application-web/src/main/resources/mapping b/application-web/src/main/resources/mapping index 1b4b01e..cf6faf6 100644 --- a/application-web/src/main/resources/mapping +++ b/application-web/src/main/resources/mapping @@ -177,7 +177,7 @@ GET /api/v1/referential/ReferentialService/preCreate GET /api/v1/referential/ReferentialService/replaceReference v1.referential.ReferentialServiceController.replaceReference GET /api/v1/sql/SqlScriptProducerService/produceAddSqlScript v1.sql.SqlScriptProducerServiceController.produceAddSqlScript GET /api/v1/sql/SqlScriptProducerService/produceDeleteSqlScript v1.sql.SqlScriptProducerServiceController.produceDeleteSqlScript -POST /api/v1/actions/consolidate/ConsolidateDataService/consolidateTripSeines v1.actions.consolidate.ConsolidateDataServiceController.consolidateTripSeines +POST /api/v1/actions/consolidate/ConsolidateDataService/consolidateTripSeine v1.actions.consolidate.ConsolidateDataServiceController.consolidateTripSeine POST /api/v1/actions/report/ReportService/executeReport v1.actions.report.ReportServiceController.executeReport POST /api/v1/actions/report/ReportService/populateVariables v1.actions.report.ReportServiceController.populateVariables POST /api/v1/actions/synchro/referential/diff/ReferentialSynchronizeDiffService/getReferentialReferenceSet v1.actions.synchro.referential.diff.ReferentialSynchronizeDiffServiceController.getReferentialReferenceSet diff --git a/services-rest/src/test/java/fr/ird/observe/services/rest/service/actions/consolidate/ConsolidateDataServiceRestTest.java b/services-rest/src/test/java/fr/ird/observe/services/rest/service/actions/consolidate/ConsolidateDataServiceRestTest.java index 00611f5..9ba1823 100644 --- a/services-rest/src/test/java/fr/ird/observe/services/rest/service/actions/consolidate/ConsolidateDataServiceRestTest.java +++ b/services-rest/src/test/java/fr/ird/observe/services/rest/service/actions/consolidate/ConsolidateDataServiceRestTest.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.rest.service.actions.consolidate; * #L% */ -import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import fr.ird.observe.services.rest.service.AbstractServiceRestTest; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; @@ -54,14 +53,14 @@ public class ConsolidateDataServiceRestTest extends AbstractServiceRestTest { List<String> tripSeineIds = Lists.newArrayList(ObserveFixtures.TRIP_SEINE_ID_1, ObserveFixtures.TRIP_SEINE_ID_2, ObserveFixtures.TRIP_SEINE_ID_3); - ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); - request.setTripSeineIds(ImmutableSet.copyOf(tripSeineIds)); - request.setFailIfLenghtWeightParameterNotFound(false); + for (String tripSeineId : tripSeineIds) { + ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); + request.setTripSeineId(tripSeineId); + request.setFailIfLenghtWeightParameterNotFound(false); - ImmutableSet<ConsolidateTripSeineDataResult> results = service.consolidateTripSeines(request); - Assert.assertNotNull(results); - //FIXME Il faudrait avoir des données modifiées dans la base de test - Assert.assertEquals(0, results.size()); + ConsolidateTripSeineDataResult results = service.consolidateTripSeine(request); + Assert.assertNotNull(results); + } } } diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopia.java index fe89790..2a6b37d 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopia.java @@ -77,22 +77,11 @@ public class ConsolidateDataServiceTopia extends ObserveServiceTopia implements private static final Log log = LogFactory.getLog(ConsolidateDataServiceTopia.class); @Override - public ImmutableSet<ConsolidateTripSeineDataResult> consolidateTripSeines(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest) { - + public ConsolidateTripSeineDataResult consolidateTripSeine(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest) { ReferentialLocale referenceLocale = serviceContext.getReferentialLocale(); boolean failIfLenghtWeightParameterNotFound = consolidateTripSeineDataRequest.isFailIfLenghtWeightParameterNotFound(); - ImmutableSet.Builder<ConsolidateTripSeineDataResult> resultBuilder = new ImmutableSet.Builder<>(); - for (String tripSeineId : consolidateTripSeineDataRequest.getTripSeineIds()) { - - Optional<ConsolidateTripSeineDataResult> consolidateTripSeineDataResult = consolidateTripSeine(referenceLocale, tripSeineId, failIfLenghtWeightParameterNotFound); - - if (consolidateTripSeineDataResult.isPresent()) { - resultBuilder.add(consolidateTripSeineDataResult.get()); - } - - } - return resultBuilder.build(); - + Optional<ConsolidateTripSeineDataResult> consolidateTripSeineDataResult = consolidateTripSeine(referenceLocale, consolidateTripSeineDataRequest.getTripSeineId(), failIfLenghtWeightParameterNotFound); + return consolidateTripSeineDataResult.orElse(null); } protected Optional<ConsolidateTripSeineDataResult> consolidateTripSeine(ReferentialLocale referenceLocale, String tripSeineId, boolean failIfLenghtWeightParameterNotFound) { diff --git a/services-topia/src/test/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopiaTest.java b/services-topia/src/test/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopiaTest.java index 454ad70..853b3eb 100644 --- a/services-topia/src/test/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopiaTest.java +++ b/services-topia/src/test/java/fr/ird/observe/services/topia/service/actions/consolidate/ConsolidateDataServiceTopiaTest.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.topia.service.actions.consolidate; * #L% */ -import com.google.common.collect.ImmutableSet; import fr.ird.observe.ObserveTopiaPersistenceContext; import fr.ird.observe.services.service.actions.consolidate.ConsolidateDataService; import fr.ird.observe.services.service.actions.consolidate.ConsolidateTripSeineDataRequest; @@ -59,15 +58,18 @@ public class ConsolidateDataServiceTopiaTest extends AbstractServiceTopiaTest { ObserveTopiaPersistenceContext persistenceContext = topiaTestMethodResource.newPersistenceContext(); List<String> tripSeineIds = persistenceContext.getTripSeineDao().findAllIds(); + Assert.assertEquals(3, tripSeineIds.size()); - ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); - request.setTripSeineIds(ImmutableSet.copyOf(tripSeineIds)); - request.setFailIfLenghtWeightParameterNotFound(false); + for (String tripSeineId : tripSeineIds) { - ImmutableSet<ConsolidateTripSeineDataResult> results = service.consolidateTripSeines(request); - Assert.assertNotNull(results); - //FIXME faire des asserts sur le résultat - Assert.assertEquals(3, results.size()); + ConsolidateTripSeineDataRequest request = new ConsolidateTripSeineDataRequest(); + request.setTripSeineId(tripSeineId); + request.setFailIfLenghtWeightParameterNotFound(false); + + ConsolidateTripSeineDataResult results = service.consolidateTripSeine(request); + Assert.assertNotNull(results); + + } } } diff --git a/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java b/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java index bbdd380..b02c52b 100644 --- a/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateDataService.java @@ -22,7 +22,6 @@ package fr.ird.observe.services.service.actions.consolidate; * #L% */ -import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.ObserveService; import fr.ird.observe.services.spi.PostRequest; import fr.ird.observe.services.spi.ReadDataPermission; @@ -37,7 +36,7 @@ import fr.ird.observe.services.spi.WriteDataPermission; * * @author Tony Chemit - chemit@codelutin.com */ -public interface ConsolidateDataService extends ObserveService{ +public interface ConsolidateDataService extends ObserveService { /** * Effectue la consolitation à partir de la demande passé en paramètre et retourne les résultats pour les marées @@ -50,6 +49,6 @@ public interface ConsolidateDataService extends ObserveService{ @WriteDataPermission @PostRequest @Write - ImmutableSet<ConsolidateTripSeineDataResult> consolidateTripSeines(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest); + ConsolidateTripSeineDataResult consolidateTripSeine(ConsolidateTripSeineDataRequest consolidateTripSeineDataRequest); } diff --git a/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateTripSeineDataRequest.java b/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateTripSeineDataRequest.java index 4aae567..2e432e8 100644 --- a/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateTripSeineDataRequest.java +++ b/services/src/main/java/fr/ird/observe/services/service/actions/consolidate/ConsolidateTripSeineDataRequest.java @@ -22,13 +22,12 @@ package fr.ird.observe.services.service.actions.consolidate; * #L% */ -import com.google.common.collect.ImmutableSet; import fr.ird.observe.services.dto.ObserveDto; import java.io.Serializable; /** - * Pour configurer l'opération de consolidation de données sur les marées de type Seine. + * Pour configurer l'opération de consolidation de données d'une marée de type Seine. * * Created on 28/08/15. * @@ -44,9 +43,9 @@ public class ConsolidateTripSeineDataRequest implements Serializable, ObserveDto protected boolean failIfLenghtWeightParameterNotFound; /** - * Les identifiants des marées à consolider. + * L'identifiant de la marée à consolider. */ - protected ImmutableSet<String> tripSeineIds; + protected String tripSeineId; public boolean isFailIfLenghtWeightParameterNotFound() { return failIfLenghtWeightParameterNotFound; @@ -56,12 +55,12 @@ public class ConsolidateTripSeineDataRequest implements Serializable, ObserveDto this.failIfLenghtWeightParameterNotFound = failIfLenghtWeightParameterNotFound; } - public ImmutableSet<String> getTripSeineIds() { - return tripSeineIds; + public String getTripSeineId() { + return tripSeineId; } - public void setTripSeineIds(ImmutableSet<String> tripSeineIds) { - this.tripSeineIds = tripSeineIds; + public void setTripSeineId(String tripSeineId) { + this.tripSeineId = tripSeineId; } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.