Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 7ee7eb28 by Tony Chemit at 2020-07-10T11:01:52+02:00 Move feedback helper to menu Help - - - - - ad4c3466 by Tony Chemit at 2020-07-10T12:44:31+02:00 Bascule entre langues - Closes #1553 Improve the way to keep data source while reload application - - - - - 7 changed files: - client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java - client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java - client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java - client-core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx - client-core/src/main/java/fr/ird/observe/client/main/actions/ReloadApplicationAction.java - client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageUIModel.java - client-runner/src/main/java/fr/ird/observe/client/RunObserve.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java ===================================== @@ -22,9 +22,9 @@ package fr.ird.observe.client; import fr.ird.observe.client.configuration.ClientConfig; -import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.services.ObserveServiceMainFactory; import fr.ird.observe.services.ObserveServiceMainFactoryApplicationComponent; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.spi.DtoModelHelper; import io.ultreia.java4all.application.context.ApplicationContext; import org.apache.logging.log4j.LogManager; @@ -45,7 +45,7 @@ import static io.ultreia.java4all.i18n.I18n.n; public class ObserveSwingApplicationContext extends ApplicationContext { private static final Logger log = LogManager.getLogger(ObserveSwingApplicationContext.class); - private static ObserveSwingDataSource dataSourceToReload; + private static ObserveDataSourceConfiguration dataSourceConfigurationToReload; public static ObserveSwingApplicationContext init(ClientConfig config) { ClientConfigFinderInstance.config = config; @@ -94,11 +94,11 @@ public class ObserveSwingApplicationContext extends ApplicationContext { } - public static void setDataSourceToReload(ObserveSwingDataSource dataSourceToReload) { - ObserveSwingApplicationContext.dataSourceToReload = dataSourceToReload; + public static void setDataSourceToReload(ObserveDataSourceConfiguration dataSourceToReload) { + ObserveSwingApplicationContext.dataSourceConfigurationToReload = dataSourceToReload; } - public static Optional<ObserveSwingDataSource> getDataSourceToReload() { - return Optional.ofNullable(dataSourceToReload); + public static Optional<ObserveDataSourceConfiguration> getDataSourceToReload() { + return Optional.ofNullable(dataSourceConfigurationToReload); } } ===================================== client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java ===================================== @@ -25,7 +25,6 @@ package fr.ird.observe.client.datasource.api; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceEvent; import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceListenerAdapter; -import fr.ird.observe.client.util.ProgressModel; import fr.ird.observe.navigation.model.edit.ObserveEditModel; import fr.ird.observe.navigation.model.select.ObserveSelectModel; import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory; @@ -50,6 +49,7 @@ import java.io.File; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Objects; import java.util.Optional; import java.util.UUID; @@ -205,6 +205,10 @@ public class ObserveDataSourcesManager implements Closeable { super.onClosed(event); ObserveSwingDataSource dataSource = event.getSource(); dataSources.remove(dataSource); + if (Objects.equals(dataSource, getMainDataSource())) { + log.info(String.format("Remove main data source: %s", dataSource)); + setMainDataSource(null); + } log.info(String.format("Data source closed : %s (%d data sources open)", dataSource.getConfiguration(), dataSources.size())); } }); @@ -215,10 +219,6 @@ public class ObserveDataSourcesManager implements Closeable { @Override public void open() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException, DatabaseOpenException { try { - //FIXME:BodyContent Review progress model, not linked to ui any more... - if (getProgressModel() == null) { - setProgressModel(new ProgressModel()); - } create(createDto); } catch (IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) { throw new DatabaseOpenException(e, configuration); ===================================== client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveSwingDataSource.java ===================================== @@ -134,6 +134,8 @@ public class ObserveSwingDataSource extends ObserveServicesProviderSupport imple this.servicesProvider = new ObserveDataSourceServicesProvider(this); this.serviceFactory = serviceFactory; this.expired = false; + setProgressModel(new ProgressModel()); + if (isLocal()) { icon = SwingUtil.getUIManagerActionIcon("db-local"); } else if (isRemote()) { ===================================== client-core/src/main/java/fr/ird/observe/client/main/ObserveMainUI.jaxx ===================================== @@ -97,7 +97,6 @@ public void destroy() { <JMenu id='menuFile'> <JMenuItem id='reloadApplication'/> - <JMenuItem id='openLastFeedBack'/> <JMenuItem id='closeApplication'/> </JMenu> <JMenu id='menuConfiguration'> @@ -116,6 +115,7 @@ public void destroy() { <JMenu id='menuHelp'> <JMenuItem id='gotoSite'/> <JMenuItem id='showAbout'/> + <JMenuItem id='openLastFeedBack'/> <JSeparator/> <JMenuItem id='translate'/> </JMenu> ===================================== client-core/src/main/java/fr/ird/observe/client/main/actions/ReloadApplicationAction.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.ObserveSwingApplicationContext; import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.client.main.body.NoBodyContentComponent; import fr.ird.observe.client.util.UIHelper; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.swing.application.ApplicationRunner; @@ -57,15 +58,17 @@ public class ReloadApplicationAction extends CloseApplicationAction { ObserveSwingDataSource mainDataSource = getObserveDataSourcesManager().getMainDataSource(); if (mainDataSource != null) { + ObserveDataSourceConfiguration mainDataSourceConfiguration = mainDataSource.getConfiguration(); if (mainDataSource.isOpen()) { try { mainDataSource.close(); } catch (Exception e) { UIHelper.handlingError("Can't close data source", e); - mainDataSource = null; + // In this case, won't try to reopen it + mainDataSourceConfiguration = null; } } - ObserveSwingApplicationContext.setDataSourceToReload(mainDataSource); + ObserveSwingApplicationContext.setDataSourceToReload(mainDataSourceConfiguration); } ApplicationRunner.getRunner().setReload(true); ===================================== client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageUIModel.java ===================================== @@ -160,8 +160,6 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie * doBackup est active. */ protected File backupFile = new File(""); - /** un drapeau pour savoir s'il faut sauver la configuration à distante */ - protected boolean storeRemoteConfig; /** le storage precedemment utilise */ protected ObserveDataSourceConfiguration previousDataSourceConfiguration; protected ConnexionStatus connexionStatus; @@ -1217,10 +1215,6 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie validate(); } - public boolean isStoreRemoteConfig() { - return storeRemoteConfig; - } - public File getBackupFile() { return backupFile; } ===================================== client-runner/src/main/java/fr/ird/observe/client/RunObserve.java ===================================== @@ -40,9 +40,9 @@ import fr.ird.observe.client.datasource.h2.backup.WithLocalDatabaseBackupTimer; import fr.ird.observe.client.main.ObserveMainUI; import fr.ird.observe.client.util.FloatConverter; import fr.ird.observe.client.util.ObserveSwingTechnicalException; -import fr.ird.observe.client.util.ProgressModel; import fr.ird.observe.client.util.UIHelper; import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto; +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2; import io.ultreia.java4all.application.context.ApplicationContext; @@ -272,7 +272,7 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, // // return; // } - Optional<ObserveSwingDataSource> dataSourceToReload = ObserveSwingApplicationContext.getDataSourceToReload(); + Optional<ObserveDataSourceConfiguration> dataSourceToReload = ObserveSwingApplicationContext.getDataSourceToReload(); ObserveSwingApplicationContext.setDataSourceToReload(null); if (!config.isLoadLocalStorage() && !dataSourceToReload.isPresent()) { @@ -368,19 +368,19 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, //FIXME Need to have a unified API and only one //FIXME first try to open specified ds (here local ds) //FIXME if can not load local ds, then feedback it and propose to load automatic backup, or to create a new local ds - private void initStorage(ClientConfig config, JFrame ui, ObserveSwingDataSource previousDataSource) { + private void initStorage(ClientConfig config, JFrame ui, ObserveDataSourceConfiguration previousDataSourceConfiguration) { ObserveMainUI mainUI = (ObserveMainUI) ui; ObserveDataSourcesManager dataSourcesManager = getObserveDataSourcesManager(); BackupsManager backupsManager = getBackupsManager(); - if (previousDataSource != null) { + if (previousDataSourceConfiguration != null) { // reuse previous data source - previousDataSource.setProgressModel(new ProgressModel()); + ObserveSwingDataSource previousDataSource = dataSourcesManager.newDataSource(previousDataSourceConfiguration); mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, previousDataSource, true); - } else if (config.isLoadLocalStorage()){ + } else if (config.isLoadLocalStorage()) { boolean askToCreate = true; BackupStorage lastAutomaticBackup = backupsManager.getAutomaticBackups().stream().findFirst().orElse(null); @@ -390,7 +390,6 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager, // une base locale existe, on l'ouvre ObserveSwingDataSource dataSource = dataSourcesManager.newLocalDataSource(); - dataSource.setProgressModel(new ProgressModel()); try { View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fcea594dfa7657079cceb68f0... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/fcea594dfa7657079cceb68f0... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT