Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
-
81b4f46d
by Tony CHEMIT at 2017-08-04T13:17:05+02:00
9 changed files:
- client/src/main/java/fr/ird/observe/client/FloatingObjectReferencesManager.java
- client/src/main/java/fr/ird/observe/client/ObserveOpenDataManager.java
- client/src/main/java/fr/ird/observe/client/db/ObserveDataSourcesManager.java
- client/src/main/java/fr/ird/observe/client/db/ObserveSwingDataSource.java
- client/src/main/java/fr/ird/observe/client/ui/ObserveMainUIInitializer.java
- client/src/main/java/fr/ird/observe/client/ui/storage/StorageBackupUILauncher.java
- client/src/main/java/fr/ird/observe/client/ui/storage/StorageUIHandler.java
- client/src/main/java/fr/ird/observe/client/ui/storage/StorageUILauncher.java
- client/src/main/java/fr/ird/observe/client/ui/util/ProgressModel.java
Changes:
| ... | ... | @@ -25,8 +25,10 @@ package fr.ird.observe.client; |
| 25 | 25 |
import com.google.common.collect.ImmutableSet;
|
| 26 | 26 |
import fr.ird.observe.client.configuration.ClientConfig;
|
| 27 | 27 |
import fr.ird.observe.client.db.ObserveSwingDataSource;
|
| 28 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 28 | 29 |
import fr.ird.observe.services.dto.FloatingObjectReference;
|
| 29 | 30 |
import java.util.Arrays;
|
| 31 |
+import java.util.Iterator;
|
|
| 30 | 32 |
import java.util.Optional;
|
| 31 | 33 |
import java.util.Set;
|
| 32 | 34 |
import java.util.TreeSet;
|
| ... | ... | @@ -76,13 +78,20 @@ public class FloatingObjectReferencesManager { |
| 76 | 78 |
return ImmutableSet.copyOf(references.stream().map(FloatingObjectReference::getFloatingObjectId).collect(Collectors.toSet()));
|
| 77 | 79 |
}
|
| 78 | 80 |
|
| 79 |
- public void sanitize(ObserveSwingDataSource dataSource) {
|
|
| 81 |
+ public void sanitize(ProgressModel progressModel, ObserveSwingDataSource dataSource) {
|
|
| 80 | 82 |
|
| 81 | 83 |
ImmutableSet<String> existingIds = getIds();
|
| 82 | 84 |
ImmutableSet<String> ids = dataSource.getFloatingObjectService().retainExistingIds(existingIds);
|
| 83 | 85 |
int beforeSize = references.size();
|
| 84 | 86 |
|
| 85 |
- references.removeIf(reference -> !ids.contains(reference.getFloatingObjectId()));
|
|
| 87 |
+ Iterator<FloatingObjectReference> iterator = references.iterator();
|
|
| 88 |
+ while (iterator.hasNext()) {
|
|
| 89 |
+ FloatingObjectReference reference = iterator.next();
|
|
| 90 |
+ if (!ids.contains(reference.getFloatingObjectId())) {
|
|
| 91 |
+ iterator.remove();
|
|
| 92 |
+ }
|
|
| 93 |
+ progressModel.incrementsCurrentStep();
|
|
| 94 |
+ }
|
|
| 86 | 95 |
|
| 87 | 96 |
save(beforeSize);
|
| 88 | 97 |
|
| ... | ... | @@ -25,6 +25,7 @@ package fr.ird.observe.client; |
| 25 | 25 |
import com.google.common.base.Preconditions;
|
| 26 | 26 |
import fr.ird.observe.client.db.ClientDataContext;
|
| 27 | 27 |
import fr.ird.observe.client.db.ObserveSwingDataSource;
|
| 28 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 28 | 29 |
import fr.ird.observe.services.ObserveServicesProvider;
|
| 29 | 30 |
import fr.ird.observe.services.dto.IdHelper;
|
| 30 | 31 |
import fr.ird.observe.services.dto.referential.ProgramDto;
|
| ... | ... | @@ -46,7 +47,6 @@ public class ObserveOpenDataManager implements Closeable { |
| 46 | 47 |
this.dataContext = dataContext;
|
| 47 | 48 |
}
|
| 48 | 49 |
|
| 49 |
- // Program
|
|
| 50 | 50 |
public boolean canOpenProgram() {
|
| 51 | 51 |
return !dataContext.isOpenProgram();
|
| 52 | 52 |
}
|
| ... | ... | @@ -290,7 +290,7 @@ public class ObserveOpenDataManager implements Closeable { |
| 290 | 290 |
dataContext.resetOpen();
|
| 291 | 291 |
}
|
| 292 | 292 |
|
| 293 |
- public void sanitizeOpenIds(String[] ids) {
|
|
| 293 |
+ public void sanitizeOpenIds(ProgressModel progressModel, String[] ids) {
|
|
| 294 | 294 |
if (ids != null) {
|
| 295 | 295 |
|
| 296 | 296 |
boolean exists = true;
|
| ... | ... | @@ -342,6 +342,7 @@ public class ObserveOpenDataManager implements Closeable { |
| 342 | 342 |
if (!exists) {
|
| 343 | 343 |
ids[i] = null;
|
| 344 | 344 |
}
|
| 345 |
+ progressModel.incrementsCurrentStep();
|
|
| 345 | 346 |
}
|
| 346 | 347 |
}
|
| 347 | 348 |
}
|
| ... | ... | @@ -36,6 +36,7 @@ import fr.ird.observe.client.ui.ObserveMainUI; |
| 36 | 36 |
import fr.ird.observe.client.ui.ObserveUIMode;
|
| 37 | 37 |
import fr.ird.observe.client.ui.actions.menu.storage.ChangeStorageAction;
|
| 38 | 38 |
import fr.ird.observe.client.ui.storage.StorageUIModel;
|
| 39 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 39 | 40 |
import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
|
| 40 | 41 |
import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
|
| 41 | 42 |
import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest;
|
| ... | ... | @@ -493,7 +494,7 @@ public class ObserveDataSourcesManager implements Closeable { |
| 493 | 494 |
applicationContext.getConfig().saveTreeOpenNodeIds(dataContext.getOpenIds());
|
| 494 | 495 |
dataContext.populateOpens();
|
| 495 | 496 |
|
| 496 |
- mainUI.getInitializer().cleanNavigationUI();
|
|
| 497 |
+ mainUI.getInitializer().cleanNavigationUI(new ProgressModel());
|
|
| 497 | 498 |
|
| 498 | 499 |
// on met a jour l'état dans la config
|
| 499 | 500 |
applicationContext.getConfig().setMainStorageOpened(false);
|
| ... | ... | @@ -551,25 +552,29 @@ public class ObserveDataSourcesManager implements Closeable { |
| 551 | 552 |
log.debug("loading ui for storage " + source.getLabel() + ": " + mainUI.getName());
|
| 552 | 553 |
}
|
| 553 | 554 |
|
| 555 |
+ ProgressModel progressModel = source.getProgressModel();
|
|
| 556 |
+ |
|
| 554 | 557 |
ClientDataContext dataContext = mainUI.getDataContext();
|
| 555 | 558 |
dataContext.setEnabled(true);
|
| 556 | 559 |
|
| 557 |
- mainUI.getInitializer().cleanNavigationUI();
|
|
| 560 |
+ mainUI.getInitializer().cleanNavigationUI(progressModel);
|
|
| 558 | 561 |
|
| 559 | 562 |
String[] openIds = config.getTreeOpenNodeIds();
|
| 560 | 563 |
|
| 561 |
- //FIXME On utilise les open ids uniquement en écriture ? le test semble faux
|
|
| 562 |
- if (source.canReadData()) {
|
|
| 563 |
- applicationContext.getOpenDataManager().sanitizeOpenIds(openIds);
|
|
| 564 |
+ if (source.canWriteData()) {
|
|
| 565 |
+ applicationContext.getOpenDataManager().sanitizeOpenIds(progressModel, openIds);
|
|
| 564 | 566 |
}
|
| 567 |
+ |
|
| 565 | 568 |
if (source.canWriteData()) {
|
| 566 |
- applicationContext.getFloatingObjectReferencesManager().sanitize(source);
|
|
| 569 |
+ applicationContext.getFloatingObjectReferencesManager().sanitize(progressModel,source);
|
|
| 567 | 570 |
}
|
| 568 | 571 |
|
| 569 | 572 |
dataContext.populateOpens(openIds);
|
| 570 |
- mainUI.getInitializer().loadNavigationUI();
|
|
| 573 |
+ |
|
| 574 |
+ mainUI.getInitializer().loadNavigationUI(progressModel);
|
|
| 571 | 575 |
|
| 572 | 576 |
mainUI.getModel().setMode(ObserveUIMode.DB);
|
| 577 |
+ progressModel.incrementsCurrentStep();
|
|
| 573 | 578 |
|
| 574 | 579 |
mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel()));
|
| 575 | 580 |
|
| ... | ... | @@ -32,6 +32,7 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; |
| 32 | 32 |
import fr.ird.observe.client.configuration.ClientConfig;
|
| 33 | 33 |
import fr.ird.observe.client.db.event.ObserveSwingDataSourceEvent;
|
| 34 | 34 |
import fr.ird.observe.client.db.event.ObserveSwingDataSourceListener;
|
| 35 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 35 | 36 |
import fr.ird.observe.services.ObserveServiceInitializer;
|
| 36 | 37 |
import fr.ird.observe.services.ObserveServicesProvider;
|
| 37 | 38 |
import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
|
| ... | ... | @@ -135,6 +136,8 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements |
| 135 | 136 |
|
| 136 | 137 |
private ObserveDataSourceConnection connection;
|
| 137 | 138 |
|
| 139 |
+ private ProgressModel progressModel;
|
|
| 140 |
+ |
|
| 138 | 141 |
// indique que la connexion a expiré mais que la source n'est pas complétement fermer
|
| 139 | 142 |
private boolean expired;
|
| 140 | 143 |
|
| ... | ... | @@ -243,7 +246,7 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements |
| 243 | 246 |
fireOpened();
|
| 244 | 247 |
}
|
| 245 | 248 |
|
| 246 |
- // @Override
|
|
| 249 |
+ @Override
|
|
| 247 | 250 |
public void close() {
|
| 248 | 251 |
|
| 249 | 252 |
checkIsOpen();
|
| ... | ... | @@ -769,4 +772,12 @@ public class ObserveSwingDataSource extends AbstractSerializableBean implements |
| 769 | 772 |
public <S extends ObserveService> S getService(Class<S> serviceType) {
|
| 770 | 773 |
return servicesProvider.getService(serviceType);
|
| 771 | 774 |
}
|
| 775 |
+ |
|
| 776 |
+ public ProgressModel getProgressModel() {
|
|
| 777 |
+ return progressModel;
|
|
| 778 |
+ }
|
|
| 779 |
+ |
|
| 780 |
+ public void setProgressModel(ProgressModel progressModel) {
|
|
| 781 |
+ this.progressModel = progressModel;
|
|
| 782 |
+ }
|
|
| 772 | 783 |
}
|
| ... | ... | @@ -39,6 +39,7 @@ import fr.ird.observe.client.ui.tree.navigation.nodes.ReferenceNavigationTreeNod |
| 39 | 39 |
import fr.ird.observe.client.ui.tree.navigation.nodes.StringNavigationTreeNodeSupport;
|
| 40 | 40 |
import fr.ird.observe.client.ui.util.ObserveSwingValidatorMessageTableModel;
|
| 41 | 41 |
import fr.ird.observe.client.ui.util.ObserveValidatorMessageTableRenderer;
|
| 42 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 42 | 43 |
import fr.ird.observe.services.decoration.DecoratorService;
|
| 43 | 44 |
import fr.ird.observe.services.decoration.ObserveI18nDecoratorHelper;
|
| 44 | 45 |
import fr.ird.observe.services.dto.constants.ReferentialLocale;
|
| ... | ... | @@ -552,11 +553,14 @@ public class ObserveMainUIInitializer { |
| 552 | 553 |
* Nettoye des ui tout ce qui concerne un modèle de navigation.
|
| 553 | 554 |
* <p>
|
| 554 | 555 |
* <b>Note:</b> cette méthode doit être appelée avant tout rechargement de modèle de naivgation.
|
| 556 |
+ *
|
|
| 557 |
+ * @param progressModel progress model to interact with ui
|
|
| 555 | 558 |
*/
|
| 556 |
- public void cleanNavigationUI() {
|
|
| 559 |
+ public void cleanNavigationUI(ProgressModel progressModel) {
|
|
| 557 | 560 |
|
| 558 | 561 |
// reset content uis
|
| 559 | 562 |
ui.getContentLayout().reset(ui.getContent());
|
| 563 |
+ progressModel.incrementsCurrentStep();
|
|
| 560 | 564 |
|
| 561 | 565 |
// clean messages
|
| 562 | 566 |
ui.getContextValue(SwingValidatorMessageTableModel.class).clear();
|
| ... | ... | @@ -565,6 +569,7 @@ public class ObserveMainUIInitializer { |
| 565 | 569 |
NavigationTree tree = ui.getNavigation();
|
| 566 | 570 |
|
| 567 | 571 |
tree.clearModel();
|
| 572 |
+ progressModel.incrementsCurrentStep();
|
|
| 568 | 573 |
|
| 569 | 574 |
// no tree navigation view
|
| 570 | 575 |
tree.setVisible(false);
|
| ... | ... | @@ -575,16 +580,20 @@ public class ObserveMainUIInitializer { |
| 575 | 580 |
* Charge dans l'ui un nouveau modèle de navigation.
|
| 576 | 581 |
* <p>
|
| 577 | 582 |
* <b>Note:</b> cette méthode doit être appelée après tout rechargement de modèle de naivgation.
|
| 578 |
- **/
|
|
| 579 |
- public void loadNavigationUI() {
|
|
| 583 |
+ *
|
|
| 584 |
+ * @param progressModel the progress model to interact with ui
|
|
| 585 |
+ */
|
|
| 586 |
+ public void loadNavigationUI(ProgressModel progressModel) {
|
|
| 580 | 587 |
|
| 581 | 588 |
NavigationTree tree = ui.getNavigation();
|
| 582 | 589 |
|
| 583 | 590 |
NavigationTreeModel treeModel = tree.getTreeModel();
|
| 584 | 591 |
treeModel.populate();
|
| 592 |
+ progressModel.incrementsCurrentStep();
|
|
| 585 | 593 |
|
| 586 | 594 |
// select initial node
|
| 587 | 595 |
tree.selectInitialNode();
|
| 596 |
+ progressModel.incrementsCurrentStep();
|
|
| 588 | 597 |
|
| 589 | 598 |
tree.setVisible(true);
|
| 590 | 599 |
|
| ... | ... | @@ -155,14 +155,13 @@ public class StorageBackupUILauncher extends StorageUILauncher { |
| 155 | 155 |
|
| 156 | 156 |
for (DataReference trip : entry.getValue()) {
|
| 157 | 157 |
|
| 158 |
- progressModel.incrementsCurrentStep();
|
|
| 159 | 158 |
ExportTripRequest exportRequest = new ExportTripRequest(false, entry.getKey().getId(), trip.getId());
|
| 160 | 159 |
ExportTripResult exportTripResult = managementService.exportTrip(exportRequest);
|
| 161 |
- |
|
| 162 | 160 |
progressModel.incrementsCurrentStep();
|
| 163 | 161 |
|
| 164 | 162 |
ImportTripRequest importTripRequest = new ImportTripRequest(exportTripResult);
|
| 165 | 163 |
tmpManagementService.importTrip(importTripRequest);
|
| 164 |
+ progressModel.incrementsCurrentStep();
|
|
| 166 | 165 |
|
| 167 | 166 |
}
|
| 168 | 167 |
|
| ... | ... | @@ -170,13 +169,12 @@ public class StorageBackupUILauncher extends StorageUILauncher { |
| 170 | 169 |
|
| 171 | 170 |
}
|
| 172 | 171 |
|
| 173 |
- progressModel.incrementsCurrentStep();
|
|
| 174 |
- |
|
| 175 | 172 |
if (log.isInfoEnabled()) {
|
| 176 | 173 |
log.info("Exporting to " + backupFile);
|
| 177 | 174 |
}
|
| 178 | 175 |
|
| 179 | 176 |
sourceToBackup.getDataSourceService().backup(backupFile);
|
| 177 |
+ progressModel.incrementsCurrentStep();
|
|
| 180 | 178 |
|
| 181 | 179 |
} catch (DatabaseNotFoundException | DatabaseConnexionNotAuthorizedException | BabModelVersionException | IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) {
|
| 182 | 180 |
throw new ObserveSwingTechnicalException(e);
|
| ... | ... | @@ -42,6 +42,7 @@ import fr.ird.observe.client.ui.storage.tabs.SecurityModel; |
| 42 | 42 |
import fr.ird.observe.client.ui.storage.tabs.SelectDataUI;
|
| 43 | 43 |
import fr.ird.observe.client.ui.storage.tabs.StorageTabUI;
|
| 44 | 44 |
import fr.ird.observe.client.ui.tree.selection.SelectionTreeModel;
|
| 45 |
+import fr.ird.observe.client.ui.util.ProgressModel;
|
|
| 45 | 46 |
import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
|
| 46 | 47 |
import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
|
| 47 | 48 |
import fr.ird.observe.services.configuration.rest.ObserveDataSourceConfigurationRest;
|
| ... | ... | @@ -357,15 +358,12 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 357 | 358 |
ClientConfig config = observeContext.getConfig();
|
| 358 | 359 |
|
| 359 | 360 |
// faut-il detruire la base locale ?
|
| 360 |
- boolean destroyLocalBase =
|
|
| 361 |
- config.isLocalStorageExist() &&
|
|
| 362 |
- model.getDbMode() == DbMode.CREATE_LOCAL;
|
|
| 361 |
+ boolean destroyLocalBase = config.isLocalStorageExist() && model.getDbMode() == DbMode.CREATE_LOCAL;
|
|
| 363 | 362 |
|
| 364 | 363 |
if (log.isDebugEnabled()) {
|
| 365 | 364 |
log.debug(">>> should destroy local db ? " + destroyLocalBase);
|
| 366 | 365 |
}
|
| 367 | 366 |
|
| 368 |
- |
|
| 369 | 367 |
ObserveDataSourcesManager dataSourcesManager = observeContext.getDataSourcesManager();
|
| 370 | 368 |
ObserveSwingDataSource currentDataSource = dataSourcesManager.getMainDataSource();
|
| 371 | 369 |
|
| ... | ... | @@ -375,9 +373,36 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 375 | 373 |
localDataSource = currentDataSource;
|
| 376 | 374 |
}
|
| 377 | 375 |
|
| 376 |
+ ProgressModel progressModel = model.getProgressModel();
|
|
| 377 |
+ |
|
| 378 |
+ int stepsCount = 8;
|
|
| 379 |
+ |
|
| 380 |
+ if (destroyLocalBase || model.isDoBackup()) {
|
|
| 381 |
+ stepsCount++;
|
|
| 382 |
+ }
|
|
| 383 |
+ if (destroyLocalBase) {
|
|
| 384 |
+ stepsCount++;
|
|
| 385 |
+ }
|
|
| 386 |
+ if (model.isDoBackup()) {
|
|
| 387 |
+ stepsCount++;
|
|
| 388 |
+ }
|
|
| 389 |
+ if (currentDataSource != null && currentDataSource.isOpen()) {
|
|
| 390 |
+ stepsCount++;
|
|
| 391 |
+ }
|
|
| 392 |
+ if (DbMode.USE_LOCAL.equals((model.getDbMode()))) {
|
|
| 393 |
+ stepsCount += 2;
|
|
| 394 |
+ }
|
|
| 395 |
+ String[] openIds = config.getTreeOpenNodeIds();
|
|
| 396 |
+ stepsCount += openIds.length;
|
|
| 397 |
+ stepsCount += observeContext.getFloatingObjectReferencesManager().getNames().size();
|
|
| 398 |
+ |
|
| 399 |
+ progressModel.installUI(ui.getCONFIRM().getProgressBar());
|
|
| 400 |
+ progressModel.setStepsCount(stepsCount);
|
|
| 401 |
+ |
|
| 378 | 402 |
boolean localDbIsSane = true;
|
| 379 | 403 |
if (destroyLocalBase || model.isDoBackup()) {
|
| 380 | 404 |
if (localDataSource == null) {
|
| 405 |
+ |
|
| 381 | 406 |
ObserveDataSourceConfigurationTopiaH2 localConfiguration = dataSourcesManager.newH2DataSourceConfiguration(config, t("observe.storage.label.local"));
|
| 382 | 407 |
|
| 383 | 408 |
// la base ne doit pas etre mise a jour dans ce cas
|
| ... | ... | @@ -413,6 +438,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 413 | 438 |
localDataSource = null;
|
| 414 | 439 |
}
|
| 415 | 440 |
}
|
| 441 |
+ |
|
| 442 |
+ progressModel.incrementsCurrentStep();
|
|
| 416 | 443 |
}
|
| 417 | 444 |
|
| 418 | 445 |
if (model.isDoBackup()) {
|
| ... | ... | @@ -439,6 +466,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 439 | 466 |
UIHelper.handlingError(e);
|
| 440 | 467 |
return;
|
| 441 | 468 |
}
|
| 469 |
+ |
|
| 470 |
+ progressModel.incrementsCurrentStep();
|
|
| 442 | 471 |
}
|
| 443 | 472 |
|
| 444 | 473 |
if (destroyLocalBase) {
|
| ... | ... | @@ -465,6 +494,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 465 | 494 |
return;
|
| 466 | 495 |
}
|
| 467 | 496 |
}
|
| 497 |
+ |
|
| 498 |
+ progressModel.incrementsCurrentStep();
|
|
| 468 | 499 |
}
|
| 469 | 500 |
|
| 470 | 501 |
// suppression du storage precedent
|
| ... | ... | @@ -473,8 +504,13 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 473 | 504 |
log.debug(">>> close main storage " + currentDataSource);
|
| 474 | 505 |
}
|
| 475 | 506 |
// on doit fermer le storage en cours d'utilisation
|
| 476 |
- currentDataSource.close();
|
|
| 507 |
+ try {
|
|
| 508 |
+ currentDataSource.close();
|
|
| 509 |
+ } catch (Exception e) {
|
|
| 510 |
+ UIHelper.handlingError(e);
|
|
| 511 |
+ }
|
|
| 477 | 512 |
}
|
| 513 |
+ progressModel.incrementsCurrentStep();
|
|
| 478 | 514 |
|
| 479 | 515 |
// suppression du storage local
|
| 480 | 516 |
if (localDataSource != null
|
| ... | ... | @@ -486,7 +522,11 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 486 | 522 |
log.debug(">>> close local storage " + localDataSource);
|
| 487 | 523 |
}
|
| 488 | 524 |
// on doit fermer le storage local ouvert
|
| 489 |
- localDataSource.close();
|
|
| 525 |
+ try {
|
|
| 526 |
+ localDataSource.close();
|
|
| 527 |
+ } catch (Exception e) {
|
|
| 528 |
+ UIHelper.handlingError(e);
|
|
| 529 |
+ }
|
|
| 490 | 530 |
}
|
| 491 | 531 |
|
| 492 | 532 |
if (log.isDebugEnabled()) {
|
| ... | ... | @@ -498,14 +538,19 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 498 | 538 |
try {
|
| 499 | 539 |
|
| 500 | 540 |
currentDataSource = ObserveSwingApplicationContext.get().getDataSourcesManager().newDataSourceFromModel(model);
|
| 541 |
+ currentDataSource.setProgressModel(progressModel);
|
|
| 501 | 542 |
|
| 502 | 543 |
// si on utilise la base local on lance une migration de la base si necessaire
|
| 503 | 544 |
if (DbMode.USE_LOCAL.equals((model.getDbMode()))) {
|
| 504 | 545 |
|
| 505 | 546 |
ObserveDataSourceInformation dataSourceInformation = currentDataSource.checkCanConnect();
|
| 506 | 547 |
|
| 548 |
+ progressModel.incrementsCurrentStep();
|
|
| 549 |
+ |
|
| 507 | 550 |
currentDataSource.migrateData(dataSourceInformation, config.getModelVersion());
|
| 508 | 551 |
|
| 552 |
+ progressModel.incrementsCurrentStep();
|
|
| 553 |
+ |
|
| 509 | 554 |
}
|
| 510 | 555 |
|
| 511 | 556 |
dataSourcesManager.setMainDataSource(currentDataSource);
|
| ... | ... | @@ -543,6 +588,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 543 | 588 |
currentDataSource.open();
|
| 544 | 589 |
}
|
| 545 | 590 |
|
| 591 |
+ progressModel.incrementsCurrentStep();
|
|
| 592 |
+ |
|
| 546 | 593 |
if (DbMode.CREATE_LOCAL.equals(model.getDbMode())
|
| 547 | 594 |
&& (CreationMode.IMPORT_REMOTE_STORAGE.equals(model.getCreationMode()) || CreationMode.IMPORT_SERVER_STORAGE.equals(model.getCreationMode()))
|
| 548 | 595 |
&& config.isLocalStorageExist()) {
|
| ... | ... | @@ -572,6 +619,8 @@ public class StorageUIHandler implements UIHandler<StorageUI> { |
| 572 | 619 |
log.info(">>> main storage opened " + currentDataSource.getLabel());
|
| 573 | 620 |
}
|
| 574 | 621 |
|
| 622 |
+ progressModel.incrementsCurrentStep();
|
|
| 623 |
+ |
|
| 575 | 624 |
} catch (Exception ex) {
|
| 576 | 625 |
UIHelper.handlingError(ex);
|
| 577 | 626 |
throw new RuntimeException(ex);
|
| ... | ... | @@ -100,7 +100,6 @@ public class StorageUILauncher extends WizardUILancher<StorageStep, StorageUIMod |
| 100 | 100 |
@Override
|
| 101 | 101 |
protected void doAction(StorageUI ui) {
|
| 102 | 102 |
ui.getModel().setBusy(true);
|
| 103 |
- super.doAction(ui);
|
|
| 104 | 103 |
}
|
| 105 | 104 |
|
| 106 | 105 |
@Override
|
| ... | ... | @@ -23,6 +23,7 @@ package fr.ird.observe.client.ui.util; |
| 23 | 23 |
*/
|
| 24 | 24 |
|
| 25 | 25 |
import javax.swing.JProgressBar;
|
| 26 |
+import javax.swing.SwingUtilities;
|
|
| 26 | 27 |
import org.jdesktop.beans.AbstractBean;
|
| 27 | 28 |
|
| 28 | 29 |
/**
|
| ... | ... | @@ -70,6 +71,6 @@ public class ProgressModel extends AbstractBean { |
| 70 | 71 |
}
|
| 71 | 72 |
|
| 72 | 73 |
public void incrementsCurrentStep() {
|
| 73 |
- setCurrentStep(getCurrentStep() + 1);
|
|
| 74 |
+ SwingUtilities.invokeLater(() -> setCurrentStep(getCurrentStep() + 1));
|
|
| 74 | 75 |
}
|
| 75 | 76 |
}
|