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 f2745591e4020974c3aabfedd961591656325534 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Sep 2 23:57:52 2016 +0200 At last remove any logic from application context --- .../observe/application/swing/ObserveRunner.java | 2 +- .../swing/ObserveSwingApplicationContext.java | 280 -------------------- .../ObserveSwingApplicationDataSourcesManager.java | 285 ++++++++++++++++++++- .../swing/ui/admin/AdminUILauncher.java | 2 +- .../swing/ui/storage/StorageUIHandler.java | 4 +- .../swing/ui/storage/StorageUIModel.java | 22 +- 6 files changed, 296 insertions(+), 299 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java index 7ad5a4a..95d8b48 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java @@ -330,7 +330,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 3 - init storage - runAction(t("observe.runner.load.database"), context, "initStorage", config, ui, true); + runAction(t("observe.runner.load.database"), context.getDataSourcesManager(), "initStorage", config, ui, true); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java index e5127e9..f36e7ba 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationContext.java @@ -25,15 +25,9 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; -import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.DataContext; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceEvent; -import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListenerAdapter; import fr.ird.observe.application.swing.decoration.DecoratorService; import fr.ird.observe.application.swing.ui.ObserveMainUI; -import fr.ird.observe.application.swing.ui.ObserveUIMode; -import fr.ird.observe.application.swing.ui.actions.ChangeStorageAction; import fr.ird.observe.application.swing.ui.actions.shared.AbstractUIAction; import fr.ird.observe.application.swing.ui.actions.shared.CancelCreateUIAction; import fr.ird.observe.application.swing.ui.actions.shared.CloseAndCreateUIAction; @@ -53,19 +47,13 @@ import fr.ird.observe.application.swing.ui.actions.shared.SaveEditUIAction; import fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentUIManager; -import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.application.swing.validation.ValidationContext; import fr.ird.observe.services.ObserveServicesProvider; -import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.reference.ReferenceBinderEngine; import fr.ird.observe.services.dto.reference.ReferenceBinderEngineSupplier; import fr.ird.observe.services.runner.ObserveDataSourceConfigurationMainFactory; import fr.ird.observe.services.runner.ObserveServiceMainFactory; -import fr.ird.observe.services.service.BabModelVersionException; -import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; -import fr.ird.observe.services.service.DatabaseNotFoundException; import fr.ird.observe.services.service.actions.validate.ValidateServiceUtils; import fr.ird.observe.services.service.actions.validate.ValidatorDto; import jaxx.runtime.context.DefaultApplicationContext; @@ -75,16 +63,11 @@ import org.apache.commons.logging.LogFactory; import org.h2.tools.Server; import javax.swing.ActionMap; -import javax.swing.JOptionPane; import java.io.Closeable; -import java.io.File; import java.util.Arrays; import java.util.Collection; -import java.util.EnumSet; import java.util.List; import java.util.Objects; -import java.util.Set; -import java.util.UUID; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.ACTIONS; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.ACTION_MAP; @@ -103,13 +86,8 @@ import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.En import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.TEXT_GENERATOR; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.VALIDATION_CONTEXT; import static fr.ird.observe.application.swing.ObserveSwingApplicationContext.Entries.VALIDATORS; -import static fr.ird.observe.application.swing.ui.UIHelper.askUser; -import static fr.ird.observe.application.swing.ui.UIHelper.displayInfo; -import static fr.ird.observe.application.swing.ui.UIHelper.handlingError; import static fr.ird.observe.application.swing.ui.UIHelper.newContextEntryDef; import static fr.ird.observe.application.swing.ui.UIHelper.newListContextEntryDef; -import static org.nuiton.i18n.I18n.n; -import static org.nuiton.i18n.I18n.t; /** * Le contexte de l'application. @@ -400,264 +378,6 @@ public class ObserveSwingApplicationContext extends DefaultApplicationContext im } } - //------------------------------------------- - // - Storages - //------------------------------------------- - - public ObserveSwingDataSource createTemporaryH2Storage(String label) { - ObserveDataSourceConfigurationMainFactory configurationMainFactory = getObserveDataSourceConfigurationMainFactory(); - - File tmpDirectory = getConfig().getTmpDirectory(); - - File dbDirectory = new File(tmpDirectory, ObserveSwingApplicationConfig.DB_NAME + UUID.randomUUID().toString()); - - ObserveDataSourceConfigurationTopiaH2 config = configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( - label, - dbDirectory, - ObserveSwingApplicationConfig.DB_NAME, - getConfig().getH2Login(), - getConfig().getH2Password(), - false, - false, - getConfig().getModelVersion() - ); - - return getDataSourcesManager().newDataSource(config); - } - - public void initStorage(ObserveSwingApplicationConfig config, ObserveMainUI mainUI, boolean askToCreate) { - - if (config.isLocalStorageExist()) { - - // une base locale existe, on l'ouvre - - boolean success = false; - // chargement de la base locale - - // création de la source de données sur la base locale - ObserveSwingDataSource dataSource = getDataSourcesManager().newLocalDatasource(getConfig()); - - try { - - ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); - - dataSource.migrateData(dataSourceInformation, getConfig().getModelVersion()); - - // la source sera utilisée dans les ui - prepareMainStorage(dataSource, true); -// getDataSourcesManager().setMainDataSource(dataSource); - - if (log.isInfoEnabled()) { - log.info(t("observe.init.local.db.detected", dataSource.getLabel())); - } - - // la base locale existe, on l'ouvre - dataSource.open(); - success = true; - } catch (DatabaseConnexionNotAuthorizedException | DatabaseNotFoundException | BabModelVersionException e) { - JOptionPane.showMessageDialog( - null, - e.getMessage(), - t("observe.title.error.dialog"), - JOptionPane.ERROR_MESSAGE - ); - } - - if (success) { - // on peut retourner sur cette base - mainUI.setMode(ObserveUIMode.DB); - } - - } else { - - // on peut retourner sur cette base - mainUI.setMode(ObserveUIMode.NO_DB); - - if (askToCreate) { - - // demande à l'utilisateur s'il veut créer la base locale - - int reponse = askUser( - t("observe.title.no.local.db.found"), - t("observe.message.no.local.db.found", - config.getLocalDBDirectory()), - JOptionPane.QUESTION_MESSAGE, - new Object[]{ - t("observe.choice.useRemoteStorage"), - t("observe.choice.createLocalStorage"), - t("observe.choice.doNothing") - }, - 1 - ); - if (log.isDebugEnabled()) { - log.debug("response : " + reponse); - } - - Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class); - String title = null; - if (reponse != JOptionPane.CLOSED_OPTION && reponse < 2) { - - if (reponse == 1) { - // creation de la base locale - dbModes.add(DbMode.CREATE_LOCAL); - title = n("observe.title.create.local.db"); - } else { - // connexion à une base distante - dbModes.add(DbMode.USE_REMOTE); - dbModes.add(DbMode.USE_SERVER); - title = n("observe.title.load.remote.db"); - } - } - if (!dbModes.isEmpty()) { - new ChangeStorageAction(getMainUI(), dbModes, title).run(); - } - - } - } - if (log.isInfoEnabled()) { - log.info(t("observe.init.storage.done")); - } - } - - - /** - * Prepare le storage principal qui servira dans les ui. - * - * @param dataSource la source de données a preparer - */ - public void prepareMainStorage(ObserveSwingDataSource dataSource, boolean setAsMainDataSource) { - - if (setAsMainDataSource) { - - getDataSourcesManager().setMainDataSource(dataSource); - - } - - dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { - - @Override - public void onOpening(ObserveSwingDataSourceEvent event) { - ObserveSwingDataSource s = event.getSource(); - displayInfo(t("observe.message.db.loading", s.getLabel())); - } - - @Override - public void onOpened(ObserveSwingDataSourceEvent event) { - - // le service est disponible, on enregistre les listeners - ObserveSwingDataSource source = event.getSource(); - - try { - openOnUI(source); - } catch (Exception e) { - - // la base n'a pas pu être chargée proprement - // ceci peut être due a une base dans une version pas - // assez recente, on doit donc refermer cette base - handlingError("Could not obtain open datas from " + source.getLabel(), e); - - // fermeture de la source - source.close(); - } - - } - - @Override - public void onClosing(ObserveSwingDataSourceEvent event) { - - super.onClosing(event); - - ObserveMainUI mainUI = getMainUI(); - DataContext dataContext = getDataContext(); - dataContext.setEnabled(false); - - // suppresion des opens dans le context de données - getConfig().setTreeOpenNodeIds(dataContext.getOpenIds()); - dataContext.populateOpens(); - - mainUI.getTreeHelper().cleanNavigationUI(mainUI); - - // on met a jour l'état dans la config - getConfig().setMainStorageOpened(false); - - } - - - @Override - public void onClosed(ObserveSwingDataSourceEvent event) { - // le service est indisponible, il faut supprimer toutes les - // references vers le service - ObserveSwingDataSource source = event.getSource(); - - // on ferme la marée, la route ou l'activité ouvertes - getOpenDataManager().close(); - - ObserveMainUI mainUI = getMainUI(); - - // nettoyage de l'ui ( suppression navigation et autres ) - if (mainUI != null) { - - if (log.isDebugEnabled()) { - log.debug("dispose ui from storage " + source.getLabel() + ": " + mainUI.getName()); - } - - mainUI.setMode(ObserveUIMode.NO_DB); - - displayInfo(t("observe.message.db.closed", source.getLabel())); - - } - - source.removeObserveSwingDataSourceListener(this); - - } - - protected void openOnUI(ObserveSwingDataSource source) { - // on rend le service disponible dans le service de validation - //getValidationContext().setMainDataSource(source); - - // toutes les données sont chargées, on peut declarer le service - // comme ouvert dans la configuration - ObserveSwingApplicationConfig config = getConfig(); - config.setMainStorageOpened(true); - config.setMainStorageOpenedLocal(source.isLocal()); - - if (source.isLocal()) { - config.setLocalStorageExist(true); - } - - // remplissage de l'ui - ObserveMainUI mainUI = getMainUI(); - - if (mainUI != null) { - if (log.isDebugEnabled()) { - log.debug("loading ui for storage " + source.getLabel() + ": " + mainUI.getName()); - } - - DataContext dataContext = mainUI.getDataContext(); - dataContext.setEnabled(true); - - ObserveTreeHelper treeHelper = mainUI.getTreeHelper(); - - treeHelper.cleanNavigationUI(mainUI); - - String[] openIds = config.getTreeOpenNodeIds(); - - if (source.canReadData()) { - getOpenDataManager().sanitizeOpenIds(openIds); - } - - dataContext.populateOpens(openIds); - treeHelper.loadNavigationUI(source); - - mainUI.setMode(ObserveUIMode.DB); - - mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel())); - - } - } - }); - } - @Override public void close() { if (log.isInfoEnabled()) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java index af958ac..38bedf5 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveSwingApplicationDataSourcesManager.java @@ -25,22 +25,40 @@ package fr.ird.observe.application.swing; import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig; +import fr.ird.observe.application.swing.configuration.constants.DbMode; +import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.ObserveSwingDataSource; import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceEvent; import fr.ird.observe.application.swing.db.event.ObserveSwingDataSourceListenerAdapter; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.ObserveUIMode; +import fr.ird.observe.application.swing.ui.actions.ChangeStorageAction; +import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationRest; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaH2; import fr.ird.observe.services.configuration.ObserveDataSourceConfigurationTopiaPG; +import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.runner.ObserveDataSourceConfigurationMainFactory; +import fr.ird.observe.services.service.BabModelVersionException; +import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException; +import fr.ird.observe.services.service.DatabaseNotFoundException; +import javax.swing.JOptionPane; import java.io.Closeable; import java.io.File; +import java.util.EnumSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; +import java.util.UUID; import static fr.ird.observe.application.swing.configuration.ObserveSwingApplicationConfig.DB_NAME; +import static fr.ird.observe.application.swing.ui.UIHelper.askUser; +import static fr.ird.observe.application.swing.ui.UIHelper.displayInfo; +import static fr.ird.observe.application.swing.ui.UIHelper.handlingError; import static jaxx.runtime.swing.editor.bean.BeanUIUtil.PopupHandler.log; +import static org.nuiton.i18n.I18n.n; import static org.nuiton.i18n.I18n.t; /** @@ -68,14 +86,14 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { */ public ObserveSwingDataSource newLocalDatasource(ObserveSwingApplicationConfig config) { - ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = getDataSourceConfigurationH2(config, t("observe.storage.label.local")); + ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = newH2DataSourceConfiguration(config, t("observe.storage.label.local")); Preconditions.checkState(dataSourceConfigurationH2.getDatabaseFile().exists(), "local base must exist, when using this method (" + dataSourceConfigurationH2.getDirectory() + ')'); return newDataSource(dataSourceConfigurationH2); } - public ObserveDataSourceConfigurationTopiaH2 getDataSourceConfigurationH2(ObserveSwingApplicationConfig config, String label) { + public ObserveDataSourceConfigurationTopiaH2 newH2DataSourceConfiguration(ObserveSwingApplicationConfig config, String label) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); @@ -93,7 +111,30 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { ); } - public ObserveDataSourceConfigurationTopiaPG getDataSourceConfigurationPG(ObserveSwingApplicationConfig config, String label) { + public ObserveSwingDataSource newTemporaryH2Datasource(String label) { + + ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + ObserveSwingApplicationConfig config = applicationContext.getConfig(); + ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); + + File tmpDirectory = config.getTmpDirectory(); + + File dbDirectory = new File(tmpDirectory, ObserveSwingApplicationConfig.DB_NAME + UUID.randomUUID().toString()); + + return new ObserveSwingDataSource(configurationMainFactory.createObserveDataSourceConfigurationTopiaH2( + label, + dbDirectory, + ObserveSwingApplicationConfig.DB_NAME, + config.getH2Login(), + config.getH2Password(), + false, + false, + config.getModelVersion() + )); + + } + + public ObserveDataSourceConfigurationTopiaPG newPGDataSourceConfiguration(ObserveSwingApplicationConfig config, String label) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); @@ -109,7 +150,7 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { ); } - public ObserveDataSourceConfigurationRest getDataSourceConfigurationRest(ObserveSwingApplicationConfig config, String label) { + public ObserveDataSourceConfigurationRest newRestDataSourceConfiguration(ObserveSwingApplicationConfig config, String label) { ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); ObserveDataSourceConfigurationMainFactory configurationMainFactory = applicationContext.getObserveDataSourceConfigurationMainFactory(); @@ -180,4 +221,240 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { setMainDataSource(null); } + + // Ne pas supprimer, utilisé par ObserveRunner + public void initStorage(ObserveSwingApplicationConfig config, ObserveMainUI mainUI, boolean askToCreate) { + + if (config.isLocalStorageExist()) { + + // une base locale existe, on l'ouvre + + boolean success = false; + // chargement de la base locale + + // création de la source de données sur la base locale + ObserveSwingDataSource dataSource = newLocalDatasource(config); + + try { + + ObserveDataSourceInformation dataSourceInformation = dataSource.checkCanConnect(); + + dataSource.migrateData(dataSourceInformation, config.getModelVersion()); + + // la source sera utilisée dans les ui + prepareMainStorage(dataSource, true); + + if (log.isInfoEnabled()) { + log.info(t("observe.init.local.db.detected", dataSource.getLabel())); + } + + // la base locale existe, on l'ouvre + dataSource.open(); + success = true; + } catch (DatabaseConnexionNotAuthorizedException | DatabaseNotFoundException | BabModelVersionException e) { + JOptionPane.showMessageDialog( + null, + e.getMessage(), + t("observe.title.error.dialog"), + JOptionPane.ERROR_MESSAGE + ); + } + + if (success) { + // on peut retourner sur cette base + mainUI.setMode(ObserveUIMode.DB); + } + + } else { + + // on peut retourner sur cette base + mainUI.setMode(ObserveUIMode.NO_DB); + + if (askToCreate) { + + // demande à l'utilisateur s'il veut créer la base locale + + int reponse = askUser( + t("observe.title.no.local.db.found"), + t("observe.message.no.local.db.found", + config.getLocalDBDirectory()), + JOptionPane.QUESTION_MESSAGE, + new Object[]{ + t("observe.choice.useRemoteStorage"), + t("observe.choice.createLocalStorage"), + t("observe.choice.doNothing") + }, + 1 + ); + if (log.isDebugEnabled()) { + log.debug("response : " + reponse); + } + + Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class); + String title = null; + if (reponse != JOptionPane.CLOSED_OPTION && reponse < 2) { + + if (reponse == 1) { + // creation de la base locale + dbModes.add(DbMode.CREATE_LOCAL); + title = n("observe.title.create.local.db"); + } else { + // connexion à une base distante + dbModes.add(DbMode.USE_REMOTE); + dbModes.add(DbMode.USE_SERVER); + title = n("observe.title.load.remote.db"); + } + } + if (!dbModes.isEmpty()) { + new ChangeStorageAction(mainUI, dbModes, title).run(); + } + + } + } + if (log.isInfoEnabled()) { + log.info(t("observe.init.storage.done")); + } + } + + + /** + * Prepare le storage principal qui servira dans les ui. + * + * @param dataSource la source de données a preparer + */ + public void prepareMainStorage(ObserveSwingDataSource dataSource, boolean setAsMainDataSource) { + + if (setAsMainDataSource) { + + setMainDataSource(dataSource); + + } + + dataSource.addObserveSwingDataSourceListener(new ObserveSwingDataSourceListenerAdapter() { + + final ObserveSwingApplicationContext applicationContext = ObserveSwingApplicationContext.get(); + + @Override + public void onOpening(ObserveSwingDataSourceEvent event) { + ObserveSwingDataSource s = event.getSource(); + displayInfo(t("observe.message.db.loading", s.getLabel())); + } + + @Override + public void onOpened(ObserveSwingDataSourceEvent event) { + + // le service est disponible, on enregistre les listeners + ObserveSwingDataSource source = event.getSource(); + + try { + openOnUI(source); + } catch (Exception e) { + + // la base n'a pas pu être chargée proprement + // ceci peut être due a une base dans une version pas + // assez recente, on doit donc refermer cette base + handlingError("Could not obtain open datas from " + source.getLabel(), e); + + // fermeture de la source + source.close(); + } + + } + + @Override + public void onClosing(ObserveSwingDataSourceEvent event) { + + super.onClosing(event); + + ObserveMainUI mainUI = applicationContext.getMainUI(); + DataContext dataContext = applicationContext.getDataContext(); + dataContext.setEnabled(false); + + // suppresion des opens dans le context de données + applicationContext.getConfig().setTreeOpenNodeIds(dataContext.getOpenIds()); + dataContext.populateOpens(); + + mainUI.getTreeHelper().cleanNavigationUI(mainUI); + + // on met a jour l'état dans la config + applicationContext.getConfig().setMainStorageOpened(false); + + } + + + @Override + public void onClosed(ObserveSwingDataSourceEvent event) { + // le service est indisponible, il faut supprimer toutes les + // references vers le service + ObserveSwingDataSource source = event.getSource(); + + // on ferme la marée, la route ou l'activité ouvertes + applicationContext.getOpenDataManager().close(); + + ObserveMainUI mainUI = applicationContext.getMainUI(); + + // nettoyage de l'ui ( suppression navigation et autres ) + if (mainUI != null) { + + if (log.isDebugEnabled()) { + log.debug("dispose ui from storage " + source.getLabel() + ": " + mainUI.getName()); + } + + mainUI.setMode(ObserveUIMode.NO_DB); + + displayInfo(t("observe.message.db.closed", source.getLabel())); + + } + + source.removeObserveSwingDataSourceListener(this); + + } + + protected void openOnUI(ObserveSwingDataSource source) { + // on rend le service disponible dans le service de validation + //getValidationContext().setMainDataSource(source); + + // toutes les données sont chargées, on peut declarer le service + // comme ouvert dans la configuration + ObserveSwingApplicationConfig config = applicationContext.getConfig(); + config.setMainStorageOpened(true); + config.setMainStorageOpenedLocal(source.isLocal()); + + if (source.isLocal()) { + config.setLocalStorageExist(true); + } + + // remplissage de l'ui + ObserveMainUI mainUI = applicationContext.getMainUI(); + + if (mainUI != null) { + if (log.isDebugEnabled()) { + log.debug("loading ui for storage " + source.getLabel() + ": " + mainUI.getName()); + } + + DataContext dataContext = mainUI.getDataContext(); + dataContext.setEnabled(true); + + ObserveTreeHelper treeHelper = mainUI.getTreeHelper(); + + treeHelper.cleanNavigationUI(mainUI); + + String[] openIds = config.getTreeOpenNodeIds(); + + if (source.canReadData()) { + applicationContext.getOpenDataManager().sanitizeOpenIds(openIds); + } + + dataContext.populateOpens(openIds); + treeHelper.loadNavigationUI(source); + + mainUI.setMode(ObserveUIMode.DB); + + mainUI.getStatus().setStatus(t("observe.message.db.loaded", source.getLabel())); + + } + } + }); + } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java index acd3648..653fb56 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/admin/AdminUILauncher.java @@ -258,7 +258,7 @@ public class AdminUILauncher extends WizardUILancher<AdminStep, AdminUIModel, Ad model.doCloseSource(source, false); // on attache la source a l'ui - ObserveSwingApplicationContext.get().prepareMainStorage(source, false); + ObserveSwingApplicationContext.get().getDataSourcesManager().prepareMainStorage(source, false); source.open(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java index 1069317..50bc695 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/StorageUIHandler.java @@ -362,7 +362,7 @@ public class StorageUIHandler { boolean localDbIsSane = true; if (destroyLocalBase || model.isDoBackup()) { if (localDataSource == null) { - ObserveDataSourceConfigurationTopiaH2 localConfiguration = dataSourcesManager.getDataSourceConfigurationH2(config, t("observe.storage.label.local")); + ObserveDataSourceConfigurationTopiaH2 localConfiguration = dataSourcesManager.newH2DataSourceConfiguration(config, t("observe.storage.label.local")); // la base ne doit pas etre mise a jour dans ce cas localConfiguration.setCanMigrate(false); @@ -488,7 +488,7 @@ public class StorageUIHandler { } dataSourcesManager.setMainDataSource(currentDataSource); - observeContext.prepareMainStorage(currentDataSource, true); + observeContext.getDataSourcesManager().prepareMainStorage(currentDataSource, true); if (model.getDbMode() == DbMode.CREATE_LOCAL) { 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 ea40922..a290cc1 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 @@ -384,9 +384,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { ObserveSwingApplicationDataSourcesManager dataSourcesManager = ObserveSwingApplicationContext.get().getDataSourcesManager(); - h2Config = dataSourcesManager.getDataSourceConfigurationH2(config, t("observe.storage.label.local")); - pgConfig = dataSourcesManager.getDataSourceConfigurationPG(config, t("observe.storage.label.remote")); - restConfig = dataSourcesManager.getDataSourceConfigurationRest(config, t("observe.storage.label.server")); + h2Config = dataSourcesManager.newH2DataSourceConfiguration(config, t("observe.storage.label.local")); + pgConfig = dataSourcesManager.newPGDataSourceConfiguration(config, t("observe.storage.label.remote")); + restConfig = dataSourcesManager.newRestDataSourceConfiguration(config, t("observe.storage.label.server")); if (source != null) { @@ -495,9 +495,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { ObserveSwingApplicationDataSourcesManager dataSourcesManager = ObserveSwingApplicationContext.get().getDataSourcesManager(); // on initialise les configuration avec les valeurs par défaut - h2Config = dataSourcesManager.getDataSourceConfigurationH2(config, t("observe.storage.label.local")); - pgConfig = dataSourcesManager.getDataSourceConfigurationPG(config, t("observe.storage.label.remote")); - restConfig = dataSourcesManager.getDataSourceConfigurationRest(config, t("observe.storage.label.server")); + h2Config = dataSourcesManager.newH2DataSourceConfiguration(config, t("observe.storage.label.local")); + pgConfig = dataSourcesManager.newPGDataSourceConfiguration(config, t("observe.storage.label.remote")); + restConfig = dataSourcesManager.newRestDataSourceConfiguration(config, t("observe.storage.label.server")); if (previousConfig instanceof ObserveDataSourceConfigurationTopiaH2) { @@ -573,9 +573,9 @@ public class StorageUIModel extends WizardModel<StorageStep> { ObserveSwingApplicationDataSourcesManager dataSourcesManager = ObserveSwingApplicationContext.get().getDataSourcesManager(); - h2Config = dataSourcesManager.getDataSourceConfigurationH2(config, t("observe.storage.label.local")); - pgConfig = dataSourcesManager.getDataSourceConfigurationPG(config, t("observe.storage.label.remote")); - restConfig = dataSourcesManager.getDataSourceConfigurationRest(config, t("observe.storage.label.server")); + h2Config = dataSourcesManager.newH2DataSourceConfiguration(config, t("observe.storage.label.local")); + pgConfig = dataSourcesManager.newPGDataSourceConfiguration(config, t("observe.storage.label.remote")); + restConfig = dataSourcesManager.newRestDataSourceConfiguration(config, t("observe.storage.label.server")); DbMode newDbMode = config.getDefaultDbMode(); if (getAdminAction() != null) { @@ -1882,7 +1882,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - try (ObserveSwingDataSource importDataSource = context.createTemporaryH2Storage(dbLabel)) { + try (ObserveSwingDataSource importDataSource = context.getDataSourcesManager().newTemporaryH2Datasource(dbLabel)) { try { importDataSource.create(createConfigurationDto); @@ -1982,7 +1982,7 @@ public class StorageUIModel extends WizardModel<StorageStep> { } - try (ObserveSwingDataSource importDataSource2 = context.createTemporaryH2Storage(dbLabel)) { + try (ObserveSwingDataSource importDataSource2 = context.getDataSourcesManager().newTemporaryH2Datasource(dbLabel)) { importDataSource = importDataSource2; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.