Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

9 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ObserveSwingApplicationContext.java
    ... ... @@ -22,9 +22,9 @@
    22 22
     package fr.ird.observe.client;
    
    23 23
     
    
    24 24
     import fr.ird.observe.client.configuration.ClientConfig;
    
    25
    -import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    26 25
     import fr.ird.observe.services.ObserveServiceMainFactory;
    
    27 26
     import fr.ird.observe.services.ObserveServiceMainFactoryApplicationComponent;
    
    27
    +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    28 28
     import fr.ird.observe.spi.DtoModelHelper;
    
    29 29
     import io.ultreia.java4all.application.context.ApplicationContext;
    
    30 30
     import org.apache.logging.log4j.LogManager;
    
    ... ... @@ -45,7 +45,7 @@ import static io.ultreia.java4all.i18n.I18n.n;
    45 45
     public class ObserveSwingApplicationContext extends ApplicationContext {
    
    46 46
     
    
    47 47
         private static final Logger log = LogManager.getLogger(ObserveSwingApplicationContext.class);
    
    48
    -    private static ObserveSwingDataSource dataSourceToReload;
    
    48
    +    private static ObserveDataSourceConfiguration dataSourceConfigurationToReload;
    
    49 49
     
    
    50 50
         public static ObserveSwingApplicationContext init(ClientConfig config) {
    
    51 51
             ClientConfigFinderInstance.config = config;
    
    ... ... @@ -94,11 +94,11 @@ public class ObserveSwingApplicationContext extends ApplicationContext {
    94 94
     
    
    95 95
         }
    
    96 96
     
    
    97
    -    public static void setDataSourceToReload(ObserveSwingDataSource dataSourceToReload) {
    
    98
    -        ObserveSwingApplicationContext.dataSourceToReload = dataSourceToReload;
    
    97
    +    public static void setDataSourceToReload(ObserveDataSourceConfiguration dataSourceToReload) {
    
    98
    +        ObserveSwingApplicationContext.dataSourceConfigurationToReload = dataSourceToReload;
    
    99 99
         }
    
    100 100
     
    
    101
    -    public static Optional<ObserveSwingDataSource> getDataSourceToReload() {
    
    102
    -        return Optional.ofNullable(dataSourceToReload);
    
    101
    +    public static Optional<ObserveDataSourceConfiguration> getDataSourceToReload() {
    
    102
    +        return Optional.ofNullable(dataSourceConfigurationToReload);
    
    103 103
         }
    
    104 104
     }

  • client-core/src/main/java/fr/ird/observe/client/datasource/api/ObserveDataSourcesManager.java
    ... ... @@ -25,7 +25,6 @@ package fr.ird.observe.client.datasource.api;
    25 25
     import fr.ird.observe.client.configuration.ClientConfig;
    
    26 26
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceEvent;
    
    27 27
     import fr.ird.observe.client.datasource.api.event.ObserveSwingDataSourceListenerAdapter;
    
    28
    -import fr.ird.observe.client.util.ProgressModel;
    
    29 28
     import fr.ird.observe.navigation.model.edit.ObserveEditModel;
    
    30 29
     import fr.ird.observe.navigation.model.select.ObserveSelectModel;
    
    31 30
     import fr.ird.observe.services.ObserveDataSourceConfigurationMainFactory;
    
    ... ... @@ -42,6 +41,7 @@ import fr.ird.observe.services.service.DatabaseConnexionNotAuthorizedException;
    42 41
     import fr.ird.observe.services.service.DatabaseNotFoundException;
    
    43 42
     import fr.ird.observe.services.service.DatabaseOpenException;
    
    44 43
     import io.ultreia.java4all.application.context.spi.GenerateApplicationComponent;
    
    44
    +import io.ultreia.java4all.i18n.I18n;
    
    45 45
     import org.apache.logging.log4j.LogManager;
    
    46 46
     import org.apache.logging.log4j.Logger;
    
    47 47
     
    
    ... ... @@ -50,11 +50,11 @@ import java.io.File;
    50 50
     import java.util.ArrayList;
    
    51 51
     import java.util.LinkedList;
    
    52 52
     import java.util.List;
    
    53
    +import java.util.Objects;
    
    53 54
     import java.util.Optional;
    
    54 55
     import java.util.UUID;
    
    55 56
     
    
    56 57
     import static fr.ird.observe.client.configuration.ClientConfig.DB_NAME;
    
    57
    -import static io.ultreia.java4all.i18n.I18n.t;
    
    58 58
     
    
    59 59
     /**
    
    60 60
      * Permet de gérer les différentes data sources utilisées dans l'application.
    
    ... ... @@ -102,7 +102,7 @@ public class ObserveDataSourcesManager implements Closeable {
    102 102
          */
    
    103 103
         public ObserveSwingDataSource newLocalDataSource() {
    
    104 104
     
    
    105
    -        ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    105
    +        ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    106 106
     
    
    107 107
             if (!dataSourceConfigurationH2.getDatabaseFile().exists()) {
    
    108 108
                 throw new IllegalStateException("local base must exist, when using this method (" +
    
    ... ... @@ -197,7 +197,7 @@ public class ObserveDataSourcesManager implements Closeable {
    197 197
                     super.onOpened(event);
    
    198 198
                     ObserveSwingDataSource dataSource = event.getSource();
    
    199 199
                     dataSources.add(dataSource);
    
    200
    -                log.info(String.format("Data source opened : %s (%d datas sources open)", dataSource.getConfiguration(), dataSources.size()));
    
    200
    +                log.info(String.format("Data source opened : %s (%d data sources open)", dataSource.getConfiguration(), dataSources.size()));
    
    201 201
                 }
    
    202 202
     
    
    203 203
                 @Override
    
    ... ... @@ -205,6 +205,10 @@ public class ObserveDataSourcesManager implements Closeable {
    205 205
                     super.onClosed(event);
    
    206 206
                     ObserveSwingDataSource dataSource = event.getSource();
    
    207 207
                     dataSources.remove(dataSource);
    
    208
    +                if (Objects.equals(dataSource, getMainDataSource())) {
    
    209
    +                    log.info(String.format("Remove main data source: %s", dataSource));
    
    210
    +                    setMainDataSource(null);
    
    211
    +                }
    
    208 212
                     log.info(String.format("Data source closed : %s (%d data sources open)", dataSource.getConfiguration(), dataSources.size()));
    
    209 213
                 }
    
    210 214
             });
    
    ... ... @@ -215,10 +219,6 @@ public class ObserveDataSourcesManager implements Closeable {
    215 219
                 @Override
    
    216 220
                 public void open() throws DatabaseConnexionNotAuthorizedException, DatabaseNotFoundException, BabModelVersionException, DatabaseOpenException {
    
    217 221
                     try {
    
    218
    -                    //FIXME:BodyContent Review progress model, not linked to ui any more...
    
    219
    -                    if (getProgressModel() == null) {
    
    220
    -                        setProgressModel(new ProgressModel());
    
    221
    -                    }
    
    222 222
                         create(createDto);
    
    223 223
                     } catch (IncompatibleDataSourceCreateConfigurationException | DataSourceCreateWithNoReferentialImportException e) {
    
    224 224
                         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
    134 134
             this.servicesProvider = new ObserveDataSourceServicesProvider(this);
    
    135 135
             this.serviceFactory = serviceFactory;
    
    136 136
             this.expired = false;
    
    137
    +        setProgressModel(new ProgressModel());
    
    138
    +
    
    137 139
             if (isLocal()) {
    
    138 140
                 icon = SwingUtil.getUIManagerActionIcon("db-local");
    
    139 141
             } else if (isRemote()) {
    

  • client-core/src/main/java/fr/ird/observe/client/main/actions/ReloadApplicationAction.java
    ... ... @@ -26,6 +26,7 @@ import fr.ird.observe.client.ObserveSwingApplicationContext;
    26 26
     import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    27 27
     import fr.ird.observe.client.main.body.NoBodyContentComponent;
    
    28 28
     import fr.ird.observe.client.util.UIHelper;
    
    29
    +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    29 30
     import org.apache.logging.log4j.LogManager;
    
    30 31
     import org.apache.logging.log4j.Logger;
    
    31 32
     import org.nuiton.jaxx.runtime.swing.application.ApplicationRunner;
    
    ... ... @@ -57,15 +58,17 @@ public class ReloadApplicationAction extends CloseApplicationAction {
    57 58
     
    
    58 59
             ObserveSwingDataSource mainDataSource = getObserveDataSourcesManager().getMainDataSource();
    
    59 60
             if (mainDataSource != null) {
    
    61
    +            ObserveDataSourceConfiguration mainDataSourceConfiguration = mainDataSource.getConfiguration();
    
    60 62
                 if (mainDataSource.isOpen()) {
    
    61 63
                     try {
    
    62 64
                         mainDataSource.close();
    
    63 65
                     } catch (Exception e) {
    
    64 66
                         UIHelper.handlingError("Can't close data source", e);
    
    65
    -                    mainDataSource = null;
    
    67
    +                    // In this case, won't try to reopen it
    
    68
    +                    mainDataSourceConfiguration = null;
    
    66 69
                     }
    
    67 70
                 }
    
    68
    -            ObserveSwingApplicationContext.setDataSourceToReload(mainDataSource);
    
    71
    +            ObserveSwingApplicationContext.setDataSourceToReload(mainDataSourceConfiguration);
    
    69 72
             }
    
    70 73
             ApplicationRunner.getRunner().setReload(true);
    
    71 74
     
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/loading/close/OpenLocalDataSourceActionStep.java
    ... ... @@ -27,6 +27,7 @@ import fr.ird.observe.client.datasource.api.ObserveDataSourcesManager;
    27 27
     import fr.ird.observe.client.datasource.api.ObserveSwingDataSource;
    
    28 28
     import fr.ird.observe.client.datasource.editor.loading.LoadingDataSourceContext;
    
    29 29
     import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2;
    
    30
    +import io.ultreia.java4all.i18n.I18n;
    
    30 31
     import org.apache.logging.log4j.LogManager;
    
    31 32
     import org.apache.logging.log4j.Logger;
    
    32 33
     
    
    ... ... @@ -62,7 +63,7 @@ public class OpenLocalDataSourceActionStep extends CloseDataSourceActionStepSupp
    62 63
         public void doAction0(ActionWithSteps<LoadingDataSourceContext> mainAction) throws Exception {
    
    63 64
     
    
    64 65
             ObserveDataSourcesManager dataSourcesManager = actionContext.getDataSourcesManager();
    
    65
    -        ObserveDataSourceConfigurationTopiaH2 localConfiguration = dataSourcesManager.newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    66
    +        ObserveDataSourceConfigurationTopiaH2 localConfiguration = dataSourcesManager.newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    66 67
     
    
    67 68
             // can't migrate datasource in this case
    
    68 69
             //FIXME I don't understand why in this cas we can't try to migrate local data source?
    

  • client-datasource-editor-api/src/main/java/fr/ird/observe/client/datasource/editor/wizard/StorageUIModel.java
    ... ... @@ -63,6 +63,7 @@ import fr.ird.observe.services.service.PingService;
    63 63
     import fr.ird.observe.services.service.sql.AddSqlScriptProducerRequest;
    
    64 64
     import fr.ird.observe.services.service.sql.SqlScriptProducerService;
    
    65 65
     import io.ultreia.java4all.application.template.spi.GenerateTemplate;
    
    66
    +import io.ultreia.java4all.i18n.I18n;
    
    66 67
     import org.apache.commons.lang3.StringUtils;
    
    67 68
     import org.apache.commons.lang3.tuple.Pair;
    
    68 69
     import org.apache.logging.log4j.LogManager;
    
    ... ... @@ -160,8 +161,6 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    160 161
          * doBackup est active.
    
    161 162
          */
    
    162 163
         protected File backupFile = new File("");
    
    163
    -    /** un drapeau pour savoir s'il faut sauver la configuration à distante */
    
    164
    -    protected boolean storeRemoteConfig;
    
    165 164
         /** le storage precedemment utilise */
    
    166 165
         protected ObserveDataSourceConfiguration previousDataSourceConfiguration;
    
    167 166
         protected ConnexionStatus connexionStatus;
    
    ... ... @@ -236,7 +235,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    236 235
             Version modelVersion = getClientConfig().getModelVersion();
    
    237 236
     
    
    238 237
             h2Config = factory.createObserveDataSourceConfigurationTopiaH2(
    
    239
    -                t("observe.runner.initStorage.label.local"),
    
    238
    +                I18n.n("observe.runner.initStorage.label.local"),
    
    240 239
                     null,
    
    241 240
                     ClientConfig.DB_NAME,
    
    242 241
                     "",
    
    ... ... @@ -247,7 +246,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    247 246
             );
    
    248 247
     
    
    249 248
             pgConfig = factory.createObserveDataSourceConfigurationTopiaPG(
    
    250
    -                t("observe.storage.label.remote"),
    
    249
    +                I18n.n("observe.storage.label.remote"),
    
    251 250
                     "",
    
    252 251
                     "",
    
    253 252
                     EMPTY_PASSWORD,
    
    ... ... @@ -258,7 +257,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    258 257
             );
    
    259 258
     
    
    260 259
             restConfig = factory.createObserveDataSourceConfigurationRest(
    
    261
    -                t("observe.storage.label.server"),
    
    260
    +                I18n.n("observe.storage.label.server"),
    
    262 261
                     null,
    
    263 262
                     "",
    
    264 263
                     EMPTY_PASSWORD,
    
    ... ... @@ -341,9 +340,9 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    341 340
     
    
    342 341
             ObserveDataSourcesManager dataSourcesManager = ObserveDataSourcesManagerApplicationComponent.value();
    
    343 342
     
    
    344
    -        h2Config = dataSourcesManager.newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    345
    -        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(t("observe.storage.label.remote"));
    
    346
    -        restConfig = dataSourcesManager.newRestDataSourceConfiguration(t("observe.storage.label.server"));
    
    343
    +        h2Config = dataSourcesManager.newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    344
    +        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(I18n.n("observe.storage.label.remote"));
    
    345
    +        restConfig = dataSourcesManager.newRestDataSourceConfiguration(I18n.n("observe.storage.label.server"));
    
    347 346
     
    
    348 347
             if (source != null) {
    
    349 348
     
    
    ... ... @@ -417,9 +416,9 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    417 416
             ObserveDataSourcesManager dataSourcesManager = ObserveDataSourcesManagerApplicationComponent.value();
    
    418 417
     
    
    419 418
             // on initialise les configuration avec les valeurs par défaut
    
    420
    -        h2Config = dataSourcesManager.newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    421
    -        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(t("observe.storage.label.remote"));
    
    422
    -        restConfig = dataSourcesManager.newRestDataSourceConfiguration(t("observe.storage.label.server"));
    
    419
    +        h2Config = dataSourcesManager.newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    420
    +        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(I18n.n("observe.storage.label.remote"));
    
    421
    +        restConfig = dataSourcesManager.newRestDataSourceConfiguration(I18n.n("observe.storage.label.server"));
    
    423 422
     
    
    424 423
             if (previousConfig instanceof ObserveDataSourceConfigurationTopiaH2) {
    
    425 424
     
    
    ... ... @@ -451,7 +450,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    451 450
             ObserveDataSourceConfiguration configuration;
    
    452 451
             switch (getDbMode()) {
    
    453 452
                 case CREATE_LOCAL:
    
    454
    -                configuration = toH2StorageConfig(t("observe.runner.initStorage.label.local"));
    
    453
    +                configuration = toH2StorageConfig(I18n.n("observe.runner.initStorage.label.local"));
    
    455 454
     
    
    456 455
                     dataSource = dataSourcesManager.newDataSource(configuration);
    
    457 456
                     dataSource.addObserveSwingDataSourceListener(
    
    ... ... @@ -493,15 +492,15 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    493 492
     
    
    494 493
                     break;
    
    495 494
                 case USE_LOCAL:
    
    496
    -                configuration = toH2StorageConfig(t("observe.runner.initStorage.label.local"));
    
    495
    +                configuration = toH2StorageConfig(I18n.n("observe.runner.initStorage.label.local"));
    
    497 496
                     dataSource = dataSourcesManager.newDataSource(configuration);
    
    498 497
                     break;
    
    499 498
                 case USE_REMOTE:
    
    500
    -                configuration = toPGStorageConfig(t("observe.storage.label.remote"));
    
    499
    +                configuration = toPGStorageConfig(I18n.n("observe.storage.label.remote"));
    
    501 500
                     dataSource = dataSourcesManager.newDataSource(configuration);
    
    502 501
                     break;
    
    503 502
                 case USE_SERVER:
    
    504
    -                configuration = toRestStorageConfig(t("observe.storage.label.server"));
    
    503
    +                configuration = toRestStorageConfig(I18n.n("observe.storage.label.server"));
    
    505 504
                     dataSource = dataSourcesManager.newDataSource(configuration);
    
    506 505
                     break;
    
    507 506
             }
    
    ... ... @@ -553,9 +552,9 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    553 552
     
    
    554 553
             ObserveDataSourcesManager dataSourcesManager = ObserveDataSourcesManagerApplicationComponent.value();
    
    555 554
     
    
    556
    -        h2Config = dataSourcesManager.newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    557
    -        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(t("observe.storage.label.remote"));
    
    558
    -        restConfig = dataSourcesManager.newRestDataSourceConfiguration(t("observe.storage.label.server"));
    
    555
    +        h2Config = dataSourcesManager.newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    556
    +        pgConfig = dataSourcesManager.newPGDataSourceConfiguration(I18n.n("observe.storage.label.remote"));
    
    557
    +        restConfig = dataSourcesManager.newRestDataSourceConfiguration(I18n.n("observe.storage.label.server"));
    
    559 558
     
    
    560 559
             Pair<CreationMode, DbMode> modes = computeModes(config);
    
    561 560
             CreationMode mode = modes.getLeft();
    
    ... ... @@ -1217,10 +1216,6 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    1217 1216
             validate();
    
    1218 1217
         }
    
    1219 1218
     
    
    1220
    -    public boolean isStoreRemoteConfig() {
    
    1221
    -        return storeRemoteConfig;
    
    1222
    -    }
    
    1223
    -
    
    1224 1219
         public File getBackupFile() {
    
    1225 1220
             return backupFile;
    
    1226 1221
         }
    
    ... ... @@ -1839,7 +1834,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    1839 1834
     
    
    1840 1835
             if (isImportReferential()) {
    
    1841 1836
     
    
    1842
    -            String dbLabel = t("observe.storage.label.reference.import.db");
    
    1837
    +            String dbLabel = I18n.n("observe.storage.label.reference.import.db");
    
    1843 1838
     
    
    1844 1839
                 switch (getReferentielImportMode()) {
    
    1845 1840
     
    
    ... ... @@ -1916,7 +1911,7 @@ public class StorageUIModel extends WizardModel<StorageStep> implements WithClie
    1916 1911
     
    
    1917 1912
             if (isImportData()) {
    
    1918 1913
     
    
    1919
    -            String dbLabel = t("observe.storage.label.data.import.db");
    
    1914
    +            String dbLabel = I18n.n("observe.storage.label.data.import.db");
    
    1920 1915
     
    
    1921 1916
                 switch (getDataImportMode()) {
    
    1922 1917
     
    

  • client-runner/src/main/java/fr/ird/observe/client/RunObserve.java
    ... ... @@ -40,9 +40,9 @@ import fr.ird.observe.client.datasource.h2.backup.WithLocalDatabaseBackupTimer;
    40 40
     import fr.ird.observe.client.main.ObserveMainUI;
    
    41 41
     import fr.ird.observe.client.util.FloatConverter;
    
    42 42
     import fr.ird.observe.client.util.ObserveSwingTechnicalException;
    
    43
    -import fr.ird.observe.client.util.ProgressModel;
    
    44 43
     import fr.ird.observe.client.util.UIHelper;
    
    45 44
     import fr.ird.observe.services.configuration.DataSourceCreateConfigurationDto;
    
    45
    +import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    46 46
     import fr.ird.observe.services.configuration.ObserveDataSourceInformation;
    
    47 47
     import fr.ird.observe.services.configuration.topia.ObserveDataSourceConfigurationTopiaH2;
    
    48 48
     import io.ultreia.java4all.application.context.ApplicationContext;
    
    ... ... @@ -80,7 +80,6 @@ import java.util.Set;
    80 80
     import java.util.logging.Level;
    
    81 81
     
    
    82 82
     import static fr.ird.observe.client.ClientUIContext.askUser;
    
    83
    -import static io.ultreia.java4all.i18n.I18n.n;
    
    84 83
     import static io.ultreia.java4all.i18n.I18n.t;
    
    85 84
     
    
    86 85
     /**
    
    ... ... @@ -119,6 +118,125 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    119 118
             return (RunObserve) ApplicationRunner.getRunner();
    
    120 119
         }
    
    121 120
     
    
    121
    +    public static void askToCreateLocalDatabase(ObserveMainUI mainUI,
    
    122
    +                                                ClientConfig config,
    
    123
    +                                                ObserveDataSourcesManager dataSourcesManager,
    
    124
    +                                                BackupStorage lastAutomaticBackup) {
    
    125
    +
    
    126
    +        InitStorageModel initStorageModel = new InitStorageModel(config.getLocalDBDirectory(), lastAutomaticBackup);
    
    127
    +
    
    128
    +        String text = InitStorageModelTemplate.generate(initStorageModel);
    
    129
    +
    
    130
    +        Object[] options;
    
    131
    +        int defaultOption;
    
    132
    +        boolean noAutomaticBackup = lastAutomaticBackup == null;
    
    133
    +        if (noAutomaticBackup) {
    
    134
    +            options = new Object[]{
    
    135
    +                    t("observe.runner.initStorage.choice.useRemoteStorage"),
    
    136
    +                    t("observe.runner.initStorage.choice.createLocalStorage"),
    
    137
    +                    t("observe.runner.initStorage.choice.doNothing")};
    
    138
    +            defaultOption = 1;
    
    139
    +
    
    140
    +        } else {
    
    141
    +            options = new Object[]{
    
    142
    +                    t("observe.runner.initStorage.choice.useRemoteStorage"),
    
    143
    +                    t("observe.runner.initStorage.choice.createLocalStorage"),
    
    144
    +                    t("observe.runner.initStorage.choice.loadLastAutomaticBackup"),
    
    145
    +                    t("observe.runner.initStorage.choice.doNothing")};
    
    146
    +            defaultOption = 2;
    
    147
    +
    
    148
    +        }
    
    149
    +
    
    150
    +        JLabel label = new JLabel(text);
    
    151
    +        int response = askUser(
    
    152
    +                null,
    
    153
    +                t("observe.runner.initStorage.title.no.local.db.found"),
    
    154
    +                label,
    
    155
    +                JOptionPane.QUESTION_MESSAGE,
    
    156
    +                options,
    
    157
    +                defaultOption
    
    158
    +        );
    
    159
    +        log.debug(String.format("response : %d", response));
    
    160
    +
    
    161
    +        if (noAutomaticBackup) {
    
    162
    +            Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class);
    
    163
    +            String title = null;
    
    164
    +            if (response != JOptionPane.CLOSED_OPTION && response < 2) {
    
    165
    +
    
    166
    +                if (response == 1) {
    
    167
    +                    // creation de la base locale
    
    168
    +                    dbModes.add(DbMode.CREATE_LOCAL);
    
    169
    +                    title = I18n.n("observe.runner.initStorage.title.create.local.db");
    
    170
    +                } else {
    
    171
    +                    // connexion à une base distante
    
    172
    +                    dbModes.add(DbMode.USE_REMOTE);
    
    173
    +                    dbModes.add(DbMode.USE_SERVER);
    
    174
    +                    title = I18n.n("observe.runner.initStorage.title.load.remote.db");
    
    175
    +                }
    
    176
    +            }
    
    177
    +            if (!dbModes.isEmpty()) {
    
    178
    +
    
    179
    +                DataSourceEditorBodyContent body = mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class);
    
    180
    +                body.doChangeStorage(dbModes, title);
    
    181
    +            }
    
    182
    +        } else {
    
    183
    +
    
    184
    +            Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class);
    
    185
    +            String title = null;
    
    186
    +            if (response != JOptionPane.CLOSED_OPTION && response < 3) {
    
    187
    +
    
    188
    +                switch (response) {
    
    189
    +                    case 2:
    
    190
    +                        // load last backup
    
    191
    +                        loadBackup(dataSourcesManager, mainUI, lastAutomaticBackup);
    
    192
    +                        break;
    
    193
    +                    case 1:
    
    194
    +                        // create local db
    
    195
    +                        // creation de la base locale
    
    196
    +                        dbModes.add(DbMode.CREATE_LOCAL);
    
    197
    +                        title = I18n.n("observe.runner.initStorage.title.create.local.db");
    
    198
    +                        break;
    
    199
    +                    case 0:
    
    200
    +                        // use remote db
    
    201
    +                        dbModes.add(DbMode.USE_REMOTE);
    
    202
    +                        dbModes.add(DbMode.USE_SERVER);
    
    203
    +                        title = I18n.n("observe.runner.initStorage.title.load.remote.db");
    
    204
    +                        break;
    
    205
    +                }
    
    206
    +            }
    
    207
    +            if (!dbModes.isEmpty()) {
    
    208
    +                DataSourceEditorBodyContent body = mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class);
    
    209
    +                body.doChangeStorage(dbModes, title);
    
    210
    +            }
    
    211
    +        }
    
    212
    +
    
    213
    +    }
    
    214
    +
    
    215
    +    public static void loadBackup(ObserveDataSourcesManager dataSourcesManager, ObserveMainUI mainUI, BackupStorage backupStorage) {
    
    216
    +        log.info("Will load last backup: " + backupStorage.getFile());
    
    217
    +        try {
    
    218
    +//            byte[] dump = Files.readAllBytes(backupStorage.getFile().toPath());
    
    219
    +            DataSourceCreateConfigurationDto createDto = new DataSourceCreateConfigurationDto();
    
    220
    +            createDto.setImportDatabase(TopiaSqlScript.of(backupStorage.getFile().toURI()));
    
    221
    +
    
    222
    +            ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = dataSourcesManager.newH2DataSourceConfiguration(I18n.n("observe.runner.initStorage.label.local"));
    
    223
    +
    
    224
    +            ObserveSwingDataSource dataSource = dataSourcesManager.newDataSource(dataSourceConfigurationH2, createDto);
    
    225
    +
    
    226
    +            mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, dataSource, true);
    
    227
    +
    
    228
    +            //FIXME:BodyContent Review progress model, not linked to ui any more...
    
    229
    +//            dataSource.setProgressModel(new ProgressModel());
    
    230
    +//            dataSource.create(createDto);
    
    231
    +//
    
    232
    +//            mainUI.changeBodyContent(DataSourceEditor.class);
    
    233
    +//            mainUI.getModel().setMode(ObserveUIMode.DB);
    
    234
    +
    
    235
    +        } catch (Exception e) {
    
    236
    +            throw new ObserveSwingTechnicalException("Impossible de créer la base locale", e);
    
    237
    +        }
    
    238
    +    }
    
    239
    +
    
    122 240
         @Override
    
    123 241
         protected void initOnce() {
    
    124 242
             if (!init) {
    
    ... ... @@ -272,7 +390,7 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    272 390
     //
    
    273 391
     //            return;
    
    274 392
     //        }
    
    275
    -        Optional<ObserveSwingDataSource> dataSourceToReload = ObserveSwingApplicationContext.getDataSourceToReload();
    
    393
    +        Optional<ObserveDataSourceConfiguration> dataSourceToReload = ObserveSwingApplicationContext.getDataSourceToReload();
    
    276 394
             ObserveSwingApplicationContext.setDataSourceToReload(null);
    
    277 395
             if (!config.isLoadLocalStorage() && !dataSourceToReload.isPresent()) {
    
    278 396
     
    
    ... ... @@ -368,19 +486,19 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    368 486
         //FIXME Need to have a unified API and only one
    
    369 487
         //FIXME first try to open specified ds (here local ds)
    
    370 488
         //FIXME if can not load local ds, then feedback it and propose to load automatic backup, or to create a new local ds
    
    371
    -    private void initStorage(ClientConfig config, JFrame ui, ObserveSwingDataSource previousDataSource) {
    
    489
    +    private void initStorage(ClientConfig config, JFrame ui, ObserveDataSourceConfiguration previousDataSourceConfiguration) {
    
    372 490
     
    
    373 491
             ObserveMainUI mainUI = (ObserveMainUI) ui;
    
    374 492
             ObserveDataSourcesManager dataSourcesManager = getObserveDataSourcesManager();
    
    375 493
             BackupsManager backupsManager = getBackupsManager();
    
    376 494
     
    
    377
    -        if (previousDataSource != null) {
    
    495
    +        if (previousDataSourceConfiguration != null) {
    
    378 496
     
    
    379 497
                 // reuse previous data source
    
    380
    -            previousDataSource.setProgressModel(new ProgressModel());
    
    498
    +            ObserveSwingDataSource previousDataSource = dataSourcesManager.newDataSource(previousDataSourceConfiguration);
    
    381 499
                 mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, previousDataSource, true);
    
    382 500
     
    
    383
    -        } else if (config.isLoadLocalStorage()){
    
    501
    +        } else if (config.isLoadLocalStorage()) {
    
    384 502
     
    
    385 503
                 boolean askToCreate = true;
    
    386 504
                 BackupStorage lastAutomaticBackup = backupsManager.getAutomaticBackups().stream().findFirst().orElse(null);
    
    ... ... @@ -390,7 +508,6 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    390 508
                     // une base locale existe, on l'ouvre
    
    391 509
     
    
    392 510
                     ObserveSwingDataSource dataSource = dataSourcesManager.newLocalDataSource();
    
    393
    -                dataSource.setProgressModel(new ProgressModel());
    
    394 511
     
    
    395 512
                     try {
    
    396 513
     
    
    ... ... @@ -430,124 +547,4 @@ public class RunObserve extends ApplicationRunner implements WithBackupsManager,
    430 547
             log.info(t("observe.runner.initStorage.done"));
    
    431 548
         }
    
    432 549
     
    
    433
    -
    
    434
    -    public static void askToCreateLocalDatabase(ObserveMainUI mainUI,
    
    435
    -                                                ClientConfig config,
    
    436
    -                                                ObserveDataSourcesManager dataSourcesManager,
    
    437
    -                                                BackupStorage lastAutomaticBackup) {
    
    438
    -
    
    439
    -        InitStorageModel initStorageModel = new InitStorageModel(config.getLocalDBDirectory(), lastAutomaticBackup);
    
    440
    -
    
    441
    -        String text = InitStorageModelTemplate.generate(initStorageModel);
    
    442
    -
    
    443
    -        Object[] options;
    
    444
    -        int defaultOption;
    
    445
    -        boolean noAutomaticBackup = lastAutomaticBackup == null;
    
    446
    -        if (noAutomaticBackup) {
    
    447
    -            options = new Object[]{
    
    448
    -                    t("observe.runner.initStorage.choice.useRemoteStorage"),
    
    449
    -                    t("observe.runner.initStorage.choice.createLocalStorage"),
    
    450
    -                    t("observe.runner.initStorage.choice.doNothing")};
    
    451
    -            defaultOption = 1;
    
    452
    -
    
    453
    -        } else {
    
    454
    -            options = new Object[]{
    
    455
    -                    t("observe.runner.initStorage.choice.useRemoteStorage"),
    
    456
    -                    t("observe.runner.initStorage.choice.createLocalStorage"),
    
    457
    -                    t("observe.runner.initStorage.choice.loadLastAutomaticBackup"),
    
    458
    -                    t("observe.runner.initStorage.choice.doNothing")};
    
    459
    -            defaultOption = 2;
    
    460
    -
    
    461
    -        }
    
    462
    -
    
    463
    -        JLabel label = new JLabel(text);
    
    464
    -        int response = askUser(
    
    465
    -                null,
    
    466
    -                t("observe.runner.initStorage.title.no.local.db.found"),
    
    467
    -                label,
    
    468
    -                JOptionPane.QUESTION_MESSAGE,
    
    469
    -                options,
    
    470
    -                defaultOption
    
    471
    -        );
    
    472
    -        log.debug(String.format("response : %d", response));
    
    473
    -
    
    474
    -        if (noAutomaticBackup) {
    
    475
    -            Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class);
    
    476
    -            String title = null;
    
    477
    -            if (response != JOptionPane.CLOSED_OPTION && response < 2) {
    
    478
    -
    
    479
    -                if (response == 1) {
    
    480
    -                    // creation de la base locale
    
    481
    -                    dbModes.add(DbMode.CREATE_LOCAL);
    
    482
    -                    title = n("observe.runner.initStorage.title.create.local.db");
    
    483
    -                } else {
    
    484
    -                    // connexion à une base distante
    
    485
    -                    dbModes.add(DbMode.USE_REMOTE);
    
    486
    -                    dbModes.add(DbMode.USE_SERVER);
    
    487
    -                    title = n("observe.runner.initStorage.title.load.remote.db");
    
    488
    -                }
    
    489
    -            }
    
    490
    -            if (!dbModes.isEmpty()) {
    
    491
    -
    
    492
    -                DataSourceEditorBodyContent body = mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class);
    
    493
    -                body.doChangeStorage(dbModes, title);
    
    494
    -            }
    
    495
    -        } else {
    
    496
    -
    
    497
    -            Set<DbMode> dbModes = EnumSet.noneOf(DbMode.class);
    
    498
    -            String title = null;
    
    499
    -            if (response != JOptionPane.CLOSED_OPTION && response < 3) {
    
    500
    -
    
    501
    -                switch (response) {
    
    502
    -                    case 2:
    
    503
    -                        // load last backup
    
    504
    -                        loadBackup(dataSourcesManager, mainUI, lastAutomaticBackup);
    
    505
    -                        break;
    
    506
    -                    case 1:
    
    507
    -                        // create local db
    
    508
    -                        // creation de la base locale
    
    509
    -                        dbModes.add(DbMode.CREATE_LOCAL);
    
    510
    -                        title = n("observe.runner.initStorage.title.create.local.db");
    
    511
    -                        break;
    
    512
    -                    case 0:
    
    513
    -                        // use remote db
    
    514
    -                        dbModes.add(DbMode.USE_REMOTE);
    
    515
    -                        dbModes.add(DbMode.USE_SERVER);
    
    516
    -                        title = n("observe.runner.initStorage.title.load.remote.db");
    
    517
    -                        break;
    
    518
    -                }
    
    519
    -            }
    
    520
    -            if (!dbModes.isEmpty()) {
    
    521
    -                DataSourceEditorBodyContent body = mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class);
    
    522
    -                body.doChangeStorage(dbModes, title);
    
    523
    -            }
    
    524
    -        }
    
    525
    -
    
    526
    -    }
    
    527
    -
    
    528
    -    public static void loadBackup(ObserveDataSourcesManager dataSourcesManager, ObserveMainUI mainUI, BackupStorage backupStorage) {
    
    529
    -        log.info("Will load last backup: " + backupStorage.getFile());
    
    530
    -        try {
    
    531
    -//            byte[] dump = Files.readAllBytes(backupStorage.getFile().toPath());
    
    532
    -            DataSourceCreateConfigurationDto createDto = new DataSourceCreateConfigurationDto();
    
    533
    -            createDto.setImportDatabase(TopiaSqlScript.of(backupStorage.getFile().toURI()));
    
    534
    -
    
    535
    -            ObserveDataSourceConfigurationTopiaH2 dataSourceConfigurationH2 = dataSourcesManager.newH2DataSourceConfiguration(t("observe.runner.initStorage.label.local"));
    
    536
    -
    
    537
    -            ObserveSwingDataSource dataSource = dataSourcesManager.newDataSource(dataSourceConfigurationH2, createDto);
    
    538
    -
    
    539
    -            mainUI.getMainUIBodyContentManager().getBodyTyped(DataSourceEditor.class, DataSourceEditorBodyContent.class).loadStorage(mainUI, dataSource, true);
    
    540
    -
    
    541
    -            //FIXME:BodyContent Review progress model, not linked to ui any more...
    
    542
    -//            dataSource.setProgressModel(new ProgressModel());
    
    543
    -//            dataSource.create(createDto);
    
    544
    -//
    
    545
    -//            mainUI.changeBodyContent(DataSourceEditor.class);
    
    546
    -//            mainUI.getModel().setMode(ObserveUIMode.DB);
    
    547
    -
    
    548
    -        } catch (Exception e) {
    
    549
    -            throw new ObserveSwingTechnicalException("Impossible de créer la base locale", e);
    
    550
    -        }
    
    551
    -    }
    
    552
    -
    
    553 550
     }

  • common-service/src/main/java/fr/ird/observe/services/configuration/rest/ObserveDataSourceConfigurationRest.java
    ... ... @@ -25,10 +25,12 @@ package fr.ird.observe.services.configuration.rest;
    25 25
     import com.google.common.base.MoreObjects;
    
    26 26
     import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    27 27
     import fr.ird.observe.services.configuration.ObserveDataSourceType;
    
    28
    +import io.ultreia.java4all.i18n.I18n;
    
    29
    +import org.nuiton.version.Version;
    
    30
    +
    
    28 31
     import java.net.URL;
    
    29 32
     import java.nio.file.Path;
    
    30 33
     import java.util.Optional;
    
    31
    -import org.nuiton.version.Version;
    
    32 34
     
    
    33 35
     /**
    
    34 36
      * Configuration d'une source de données Rest non connectée.
    
    ... ... @@ -37,6 +39,7 @@ import org.nuiton.version.Version;
    37 39
      *
    
    38 40
      * @author Tony Chemit - dev@tchemit.fr
    
    39 41
      */
    
    42
    +@SuppressWarnings("unused")
    
    40 43
     public class ObserveDataSourceConfigurationRest implements ObserveDataSourceConfiguration {
    
    41 44
     
    
    42 45
         private static final long serialVersionUID = 1L;
    
    ... ... @@ -75,7 +78,7 @@ public class ObserveDataSourceConfigurationRest implements ObserveDataSourceConf
    75 78
     
    
    76 79
         @Override
    
    77 80
         public String getLabel() {
    
    78
    -        return label;
    
    81
    +        return I18n.t(label);
    
    79 82
         }
    
    80 83
     
    
    81 84
         @Override
    

  • common-service/src/main/java/fr/ird/observe/services/configuration/topia/ObserveDataSourceConfigurationTopiaSupport.java
    ... ... @@ -24,6 +24,7 @@ package fr.ird.observe.services.configuration.topia;
    24 24
     
    
    25 25
     import fr.ird.observe.services.configuration.ObserveDataSourceConfiguration;
    
    26 26
     import fr.ird.observe.services.configuration.ObserveDataSourceType;
    
    27
    +import io.ultreia.java4all.i18n.I18n;
    
    27 28
     import org.nuiton.version.Version;
    
    28 29
     
    
    29 30
     import java.nio.file.Path;
    
    ... ... @@ -101,7 +102,7 @@ public abstract class ObserveDataSourceConfigurationTopiaSupport implements Obse
    101 102
     
    
    102 103
         @Override
    
    103 104
         public String getLabel() {
    
    104
    -        return label;
    
    105
    +        return I18n.t(label);
    
    105 106
         }
    
    106 107
     
    
    107 108
         public void setLabel(String label) {