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 a3829d2d50870d072b30acc9c3375cdbe73ca30a Author: Tony CHEMIT <chemit@codelutin.com> Date: Sat Dec 17 12:41:30 2016 +0100 Amélioration de l'opération de sauevgarde d'une base --- .../swing/ui/storage/StorageBackupUILauncher.java | 24 +++++++++++++++++++--- .../swing/ui/storage/StorageUIModel.java | 11 ++++++++++ .../swing/ui/storage/tabs/ConfirmUI.jaxx | 1 + .../swing/ui/storage/tabs/ConfirmUI.jcss | 7 +++++++ 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java index 865f650..37b96f4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageBackupUILauncher.java @@ -26,6 +26,7 @@ import fr.ird.observe.application.swing.ObserveSwingTechnicalException; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.application.swing.ui.util.ProgressModel; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.DataSourceCreateConfigurationDto; import fr.ird.observe.services.dto.DataSourceCreateWithNoReferentialImportException; @@ -100,6 +101,8 @@ public class StorageBackupUILauncher extends StorageUILauncher { log.error(e, e); } } + + model.getProgressModel().installUI(ui.getCONFIRM().getProgressBar()); } @Override @@ -114,9 +117,18 @@ public class StorageBackupUILauncher extends StorageUILauncher { ObserveSwingDataSource localSource = ObserveSwingApplicationContext.get().getDataSourcesManager().getMainDataSource(); ObserveSwingDataSource sourceToBackup = localSource; + SelectionTreeModel dataModel = storageModel.getSelectDataModel(); + int stepsCount = 1; + if (!dataModel.isDataFull()) { + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> tripsByProgram = dataModel.getSelectedDataByProgram(); + for (List<DataReference<?>> programDtoReferentialReference : tripsByProgram.values()) { + stepsCount += 2 * programDtoReferentialReference.size(); + } + } + ProgressModel progressModel = storageModel.getProgressModel(); + progressModel.setStepsCount(stepsCount + 1); + try { - SelectionTreeModel dataModel = storageModel.getSelectDataModel(); - Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> tripsByProgram; if (!dataModel.isDataFull()) { // on renseigne les marees a exporter uniquement si @@ -124,7 +136,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { // toutes les marees, on le les passe pas : car c un dump // complet de la base. - tripsByProgram = dataModel.getSelectedDataByProgram(); + Map<ReferentialReference<ProgramDto>, List<DataReference<?>>> tripsByProgram = dataModel.getSelectedDataByProgram(); // on doit creer une nouvelle base avec tout ce qui va bien @@ -144,9 +156,12 @@ public class StorageBackupUILauncher extends StorageUILauncher { for (DataReference trip : entry.getValue()) { + progressModel.incrementsCurrentStep(); ExportTripRequest exportRequest = new ExportTripRequest(false, entry.getKey().getId(), trip.getId()); ExportTripResult exportTripResult = managementService.exportTrip(exportRequest); + progressModel.incrementsCurrentStep(); + ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult); tmpManagementService.importTrip(importTripRequest); @@ -156,6 +171,8 @@ public class StorageBackupUILauncher extends StorageUILauncher { } + progressModel.incrementsCurrentStep(); + if (log.isInfoEnabled()) { log.info("Exporting to " + backupFile); } @@ -166,6 +183,7 @@ public class StorageBackupUILauncher extends StorageUILauncher { throw new ObserveSwingTechnicalException(e); } finally { + progressModel.incrementsCurrentStep(); if (sourceToBackup != localSource) { sourceToBackup.close(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java index 4c2a53b..2cc05dc 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIModel.java @@ -32,6 +32,7 @@ import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.constants.ConnexionStatus; import fr.ird.observe.application.swing.ui.storage.tabs.SecurityModel; import fr.ird.observe.application.swing.ui.tree.selection.SelectionTreeModel; +import fr.ird.observe.application.swing.ui.util.ProgressModel; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest; @@ -2037,4 +2038,14 @@ public class StorageUIModel extends WizardModel<StorageStep> { public void setSelectAll(boolean selectAll) { this.selectAll = selectAll; } + + // --- + // ProgressModel + // --- + + private final ProgressModel progressModel = new ProgressModel(); + + public ProgressModel getProgressModel() { + return progressModel; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jaxx index eef41bf..66c46e3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jaxx @@ -37,5 +37,6 @@ <JTextPane id='resume'/> </JScrollPane> </JPanel> + <JProgressBar id="progressBar" constraints='BorderLayout.SOUTH'/> </StorageTabUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jcss index 185edc9..69fec98 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfirmUI.jcss @@ -36,3 +36,10 @@ #resumePane { border:{null}; } + +#progressBar { + indeterminate:false; + stringPainted:true; + /*value: {getModel().getCurrentStep()}; + maximum: {getModel().getStepsCount()};*/ +} \ No newline at end of file -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.