branch develop updated (67442ee -> b066823)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git from 67442ee Merge branch 'feature/2' into 'develop' new 3a968fa Ajout raccourci clavier dans la description de sélection new 6eaef96 Ajout de la sauvegarde des configurations de source de données (Refs #8555) new 3684d56 Suppression des anciennes options de configuration liées à la sauvegarde des connexions (Refs #8555) new b066823 Assistant de connexion (Fixes #8555) Merge branch 'feature/8555' into develop The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit b06682310aadda51227cffe887fbf01717926f6f Merge: 3a968fa 3684d56 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:39:00 2016 +0100 Assistant de connexion (Fixes #8555) Merge branch 'feature/8555' into develop commit 3684d560a5b2aac290c94f57631a1bdfab791ade Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:36:58 2016 +0100 Suppression des anciennes options de configuration liées à la sauvegarde des connexions (Refs #8555) commit 6eaef96358e18fd4f2ee45e63a55d3c4f531c60f Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:06:47 2016 +0100 Ajout de la sauvegarde des configurations de source de données (Refs #8555) commit 3a968fac72881bd570e0d5b9af9e3a776fbe1a02 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 09:12:44 2016 +0100 Ajout raccourci clavier dans la description de sélection Summary of changes: .../src/main/config/ObserveSwingApplication.ini | 53 ++--------- .../ObserveSwingApplicationConfig.java | 46 +++++++++- .../RemoteDataSourceConfiguration.java | 56 +++++++++++ .../ServerDataSourceConfiguration.java | 56 +++++++++++ ...pplication-swing-configuration_en_GB.properties | 10 +- ...pplication-swing-configuration_es_ES.properties | 10 +- ...pplication-swing-configuration_fr_FR.properties | 10 +- .../ObserveSwingApplicationDataSourcesManager.java | 16 ++-- .../application/swing/ui/MnemonicHelper.java | 10 +- .../swing/ui/actions/AbstractUIAction.java | 8 +- .../swing/ui/actions/content/GoDownUIAction.java | 3 +- .../swing/ui/actions/content/GoUpUIAction.java | 8 +- .../ui/actions/menu/config/ShowConfigAction.java | 8 -- .../SaveCurrentRemoteConfigurationUIAction.java | 100 ++++++++++++++++++++ .../SaveCurrentServerConfigurationUIAction.java | 102 +++++++++++++++++++++ .../storage/UseRemoteConfigurationUIAction.java | 60 ++++++++++++ .../storage/UseServerConfigurationUIAction.java | 62 +++++++++++++ .../swing/ui/storage/StorageUIHandler.java | 43 --------- .../swing/ui/storage/StorageUIModel.java | 14 --- .../swing/ui/storage/tabs/ConfigUI.jaxx | 53 ++++++----- .../swing/ui/storage/tabs/ConfigUI.jcss | 36 +++++++- .../swing/ui/storage/tabs/ConfigUIHandler.java | 82 ++++++++++++++--- .../swing/ui/storage/tabs/SelectDataUIHandler.java | 5 +- .../nodes/NavigationTreeNodeSupport.java | 3 +- .../swing/ui/tree/selection/SelectionTree.java | 7 +- .../i18n/application-swing_en_GB.properties | 30 ++---- .../i18n/application-swing_es_ES.properties | 30 ++---- .../i18n/application-swing_fr_FR.properties | 30 ++---- pom.xml | 2 +- 29 files changed, 674 insertions(+), 279 deletions(-) create mode 100644 application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/RemoteDataSourceConfiguration.java create mode 100644 application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ServerDataSourceConfiguration.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java create mode 100644 application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 3a968fac72881bd570e0d5b9af9e3a776fbe1a02 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 09:12:44 2016 +0100 Ajout raccourci clavier dans la description de sélection --- .../java/fr/ird/observe/application/swing/ui/MnemonicHelper.java | 9 +++++++++ .../application/swing/ui/storage/tabs/SelectDataUIHandler.java | 5 ++++- .../application/swing/ui/tree/selection/SelectionTree.java | 7 +++---- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java index dcad18d..607cfc0 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java @@ -56,6 +56,7 @@ public class MnemonicHelper { public static final KeyStroke KEY_STROKE_STORAGE_DO_USE_SSL = KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_STORAGE_DO_CHOOSE_FILE = KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); + public static final KeyStroke KEY_STROKE_ENTER = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0); private static String keyStrokeToStr(KeyStroke actionKey) { String result = ""; @@ -99,6 +100,14 @@ public class MnemonicHelper { action.putValue(SHORT_DESCRIPTION, t(shortDescription) + acceleratorStr); } + public static String addKeyStroke3(String text, KeyStroke keyStroke) { + boolean showMnemonic = isShowMnemonic(); + if (showMnemonic) { + text += keyStrokeToStr(keyStroke); + } + return text; + } + public static void addKeyStroke2(AbstractButton editor, KeyStroke keyStroke) { String tip = (String) editor.getClientProperty("toolTipText"); boolean showMnemonic = isShowMnemonic(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUIHandler.java index c00143c..a6fe06a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/SelectDataUIHandler.java @@ -22,6 +22,7 @@ package fr.ird.observe.application.swing.ui.storage.tabs; * #L% */ +import fr.ird.observe.application.swing.ui.MnemonicHelper; import jaxx.runtime.spi.UIHandler; import static org.nuiton.i18n.I18n.t; @@ -37,7 +38,9 @@ public class SelectDataUIHandler extends StorageTabUIHandler<SelectDataUI> imple @Override public void afterInit(SelectDataUI ui) { if (ui.getStep() != null) { - ui.setDescriptionText(t(ui.getStep().getDescription())); + String description = t(ui.getStep().getDescription()); + description = MnemonicHelper.addKeyStroke3(description, MnemonicHelper.KEY_STROKE_ENTER); + ui.setDescriptionText(description); } ui.getSelectTree().installUI(); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java index 1a44b26..e19438d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/selection/SelectionTree.java @@ -22,16 +22,15 @@ package fr.ird.observe.application.swing.ui.tree.selection; * #L% */ +import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.tree.selection.nodes.SelectionTreeNodeSupport; import org.jdesktop.swingx.JXTree; import javax.swing.AbstractAction; import javax.swing.ActionMap; import javax.swing.InputMap; -import javax.swing.KeyStroke; import javax.swing.ListSelectionModel; import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; /** * Created on 14/11/16. @@ -55,7 +54,7 @@ public class SelectionTree extends JXTree { InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); ActionMap actionMap = getActionMap(); - inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "select/unselect"); + inputMap.put(MnemonicHelper.KEY_STROKE_ENTER, "select/unselect"); actionMap.put("select/unselect", new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { @@ -75,7 +74,7 @@ public class SelectionTree extends JXTree { InputMap inputMap = getInputMap(WHEN_IN_FOCUSED_WINDOW); ActionMap actionMap = getActionMap(); - inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "select/unselect"); + inputMap.put(MnemonicHelper.KEY_STROKE_ENTER, "select/unselect"); actionMap.put("select/unselect", new AbstractAction() { protected void forTree(SelectionTree tree) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 6eaef96358e18fd4f2ee45e63a55d3c4f531c60f Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:06:47 2016 +0100 Ajout de la sauvegarde des configurations de source de données (Refs #8555) --- .../src/main/config/ObserveSwingApplication.ini | 10 ++ .../ObserveSwingApplicationConfig.java | 41 ++++++++ .../RemoteDataSourceConfiguration.java | 56 +++++++++++ .../ServerDataSourceConfiguration.java | 56 +++++++++++ ...pplication-swing-configuration_en_GB.properties | 2 + ...pplication-swing-configuration_es_ES.properties | 2 + ...pplication-swing-configuration_fr_FR.properties | 2 + .../swing/ui/actions/AbstractUIAction.java | 8 +- .../swing/ui/actions/content/GoDownUIAction.java | 3 +- .../swing/ui/actions/content/GoUpUIAction.java | 8 +- .../SaveCurrentRemoteConfigurationUIAction.java | 101 ++++++++++++++++++++ .../SaveCurrentServerConfigurationUIAction.java | 104 +++++++++++++++++++++ .../storage/UseRemoteConfigurationUIAction.java | 61 ++++++++++++ .../storage/UseServerConfigurationUIAction.java | 63 +++++++++++++ .../swing/ui/storage/tabs/ConfigUI.jaxx | 46 +++++---- .../swing/ui/storage/tabs/ConfigUI.jcss | 34 +++++++ .../swing/ui/storage/tabs/ConfigUIHandler.java | 74 ++++++++++++++- .../nodes/NavigationTreeNodeSupport.java | 3 +- .../i18n/application-swing_en_GB.properties | 4 + .../i18n/application-swing_es_ES.properties | 4 + .../i18n/application-swing_fr_FR.properties | 4 + pom.xml | 2 +- 22 files changed, 655 insertions(+), 33 deletions(-) diff --git a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini index fbfece9..332a225 100644 --- a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini +++ b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini @@ -152,6 +152,16 @@ key = h2.serverPort type = Integer defaultValue = 9093 +[option remoteDataSourceConfigurations] +description = observe.config.remoteDataSourceConfigurations.description +key = remoteDataSourceConfigurations +type = fr.ird.observe.application.swing.configuration.RemoteDataSourceConfiguration[] + +[option serverDataSourceConfigurations] +description = observe.config.serverDataSourceConfigurations.description +key = serverDataSourceConfigurations +type = fr.ird.observe.application.swing.configuration.ServerDataSourceConfiguration[] + [option obstunaUrl] description = observe.config.obstuna.url.description key = obstuna.url diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java index c5d653d..753a194 100644 --- a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java @@ -24,6 +24,7 @@ package fr.ird.observe.application.swing.configuration; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; +import com.google.gson.Gson; import fr.ird.observe.application.swing.configuration.constants.CreationMode; import fr.ird.observe.application.swing.configuration.constants.DbMode; import org.apache.commons.lang3.StringUtils; @@ -39,6 +40,8 @@ import java.beans.PropertyChangeListener; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.LinkedList; @@ -388,6 +391,44 @@ public class ObserveSwingApplicationConfig extends GeneratedObserveSwingApplicat return longlinVesselTypeIds; } + @Override + public RemoteDataSourceConfiguration[] getRemoteDataSourceConfigurations() { + String option = get().getOption(ObserveSwingApplicationConfigOption.REMOTE_DATA_SOURCE_CONFIGURATIONS.getKey()); + return option == null ? new RemoteDataSourceConfiguration[0] : new Gson().fromJson(option, RemoteDataSourceConfiguration[].class); + } + + public void addRemoteDataSourceConfigurations(RemoteDataSourceConfiguration remoteDataSourceConfiguration) { + List<RemoteDataSourceConfiguration> remoteDataSourceConfigurations = new ArrayList<>(Arrays.asList(getRemoteDataSourceConfigurations())); + remoteDataSourceConfigurations.add(remoteDataSourceConfiguration); + setRemoteDataSourceConfigurations(remoteDataSourceConfigurations.toArray(new RemoteDataSourceConfiguration[remoteDataSourceConfigurations.size()])); + saveForUser(); + } + + @Override + public void setRemoteDataSourceConfigurations(RemoteDataSourceConfiguration[] remoteDataSourceConfigurations) { + String option = new Gson().toJson(remoteDataSourceConfigurations); + get().setOption(ObserveSwingApplicationConfigOption.REMOTE_DATA_SOURCE_CONFIGURATIONS.getKey(), option); + } + + @Override + public ServerDataSourceConfiguration[] getServerDataSourceConfigurations() { + String option = get().getOption(ObserveSwingApplicationConfigOption.SERVER_DATA_SOURCE_CONFIGURATIONS.getKey()); + return option == null ? new ServerDataSourceConfiguration[0] : new Gson().fromJson(option, ServerDataSourceConfiguration[].class); + } + + public void addServerDataSourceConfigurations(ServerDataSourceConfiguration remoteDataSourceConfiguration) { + List<ServerDataSourceConfiguration> remoteDataSourceConfigurations = new ArrayList<>(Arrays.asList(getServerDataSourceConfigurations())); + remoteDataSourceConfigurations.add(remoteDataSourceConfiguration); + setServerDataSourceConfigurations(remoteDataSourceConfigurations.toArray(new ServerDataSourceConfiguration[remoteDataSourceConfigurations.size()])); + saveForUser(); + } + + @Override + public void setServerDataSourceConfigurations(ServerDataSourceConfiguration[] serverDataSourceConfigurations) { + String option = new Gson().toJson(serverDataSourceConfigurations); + get().setOption(ObserveSwingApplicationConfigOption.SERVER_DATA_SOURCE_CONFIGURATIONS.getKey(), option); + } + ////////////////////////////////////////////////// // Toutes les étapes d'actions ////////////////////////////////////////////////// diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/RemoteDataSourceConfiguration.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/RemoteDataSourceConfiguration.java new file mode 100644 index 0000000..5a3a32d --- /dev/null +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/RemoteDataSourceConfiguration.java @@ -0,0 +1,56 @@ +package fr.ird.observe.application.swing.configuration; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class RemoteDataSourceConfiguration { + + private String name; + private String url; + private String login; + private String password; + private boolean useSsl; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public boolean isUseSsl() { + return useSsl; + } + + public void setUseSsl(boolean useSsl) { + this.useSsl = useSsl; + } +} diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ServerDataSourceConfiguration.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ServerDataSourceConfiguration.java new file mode 100644 index 0000000..4c588ed --- /dev/null +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ServerDataSourceConfiguration.java @@ -0,0 +1,56 @@ +package fr.ird.observe.application.swing.configuration; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class ServerDataSourceConfiguration { + + private String name; + private String url; + private String login; + private String password; + private String databaseName; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public String getLogin() { + return login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getDatabaseName() { + return databaseName; + } + + public void setDatabaseName(String databaseName) { + this.databaseName = databaseName; + } +} diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties index dbd5181..b6bfcef 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties @@ -58,10 +58,12 @@ observe.config.obstuna.password.description=Remote password observe.config.obstuna.url.description=URL of remote data source observe.config.obstuna.useSsl.description=Flag sets to true when your are using remote with ssl observe.config.pg.can.migrate.description=Flat sets to true when you can migrate remote data sources +observe.config.remoteDataSourceConfigurations.description=Remote data source configurations observe.config.server.dataBaseName.description=Optional name of database name on server observe.config.server.login.description=Server login observe.config.server.password.description=Server password observe.config.server.url.description=Server url +observe.config.serverDataSourceConfigurations.description=Server data source configurations observe.config.showMigrationProgression=Show migration progression observe.config.showMigrationSql=Show migration sql queries observe.config.showSql=Show sql diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties index 28a7a37..496295e 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties @@ -58,10 +58,12 @@ observe.config.obstuna.password.description=Contraseña para conectarse a la bas observe.config.obstuna.url.description=Url de conexión a la base Obstuna observe.config.obstuna.useSsl.description=Bandera para permitir la utilización del modo ssl para la conexión a Obstuna observe.config.pg.can.migrate.description=Autorizar la actualización de las bases remotas (debe ser el propietario de la base) +observe.config.remoteDataSourceConfigurations.description=Configuration de bases distantes \#TODO observe.config.server.dataBaseName.description=El nombre opcinal de la base de referencia sobre el servidor observe.config.server.login.description=Identificador del usuario observe.config.server.password.description=La contraseña del usuario observe.config.server.url.description=La dirección (url) del servidor +observe.config.serverDataSourceConfigurations.description=Configurations de serveurs distants \#TODO observe.config.showMigrationProgression=Mostar los logs de actualización de una base de datos observe.config.showMigrationSql=Mostrar en los logs las consultas realizadas durante la actualización de una base de datos observe.config.showSql=Mostrar en los los todas las consultas sql ejecutadas diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties index ccdc3e7..4e368f3 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties @@ -58,10 +58,12 @@ observe.config.obstuna.password.description=Le mote de passe pour se connecter observe.config.obstuna.url.description=L'url de connexion à la base Obstuna observe.config.obstuna.useSsl.description=Drapeau pour permettre l'utilisation du mode ssl pour la connexion à Obstuna observe.config.pg.can.migrate.description=Autoriser la mise à jour des bases distantes (il faut être propriétaire de la base) +observe.config.remoteDataSourceConfigurations.description=Configurations de bases distantes observe.config.server.dataBaseName.description=Le nom optionel de la base cible sur le serveur observe.config.server.login.description=Identifiant de l'utilisateur observe.config.server.password.description=Le mot de passe de l'utilisateur observe.config.server.url.description=L'url du serveur +observe.config.serverDataSourceConfigurations.description=Configuration de serveurs distants observe.config.showMigrationProgression=Afficher dans les logs la progression de la mise à jour d'une base observe.config.showMigrationSql=Afficher dans les logs les requêtes jouées lors de la mise à jour d'une base observe.config.showSql=Afficher dans les logs toutes les requêtes sql executées diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/AbstractUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/AbstractUIAction.java index 90efdfa..f548de7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/AbstractUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/AbstractUIAction.java @@ -26,6 +26,7 @@ import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.content.ContentUI; +import jaxx.runtime.JAXXObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -52,6 +53,7 @@ public abstract class AbstractUIAction extends AbstractAction { private static final Log log = LogFactory.getLog(AbstractUIAction.class); public static final String EDITOR = "editor"; + public static final String CLIENT_PROPERTY_UI = "ui"; private final ObserveMainUI mainUI; @@ -74,9 +76,9 @@ public abstract class AbstractUIAction extends AbstractAction { return mainUI; } - public void initAction(ContentUI<?, ?> ui, AbstractButton editor) { + public void initAction(JComponent ui, AbstractButton editor) { editor.setAction(this); - editor.putClientProperty("ui", ui); + editor.putClientProperty(CLIENT_PROPERTY_UI, ui); //FIXME Attention on introduit un état dans l'action et si l'action est utilisée plusieurs fois dans un même écran //FIXME cela va introduire des effets de bord putValue(EDITOR, editor); @@ -106,7 +108,7 @@ public abstract class AbstractUIAction extends AbstractAction { } } - public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { + public void updateAction(JAXXObject ui, AbstractButton editor) { MnemonicHelper.addKeyStroke2(editor, getAcceleratorKey()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoDownUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoDownUIAction.java index f29d495..4285cc4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoDownUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoDownUIAction.java @@ -25,6 +25,7 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; +import jaxx.runtime.JAXXObject; import javax.swing.AbstractButton; import javax.swing.JComponent; @@ -66,7 +67,7 @@ public class GoDownUIAction extends AbstractContentUIAction { } @Override - public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { + public void updateAction(JAXXObject ui, AbstractButton editor) { ObserveMainUI mainUI = getMainUI(); NavigationTree tree = getMainUI().getNavigation(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoUpUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoUpUIAction.java index 2c80fcc..6e0380d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoUpUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/content/GoUpUIAction.java @@ -25,8 +25,7 @@ import fr.ird.observe.application.swing.ui.ObserveMainUI; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.NavigationTreeNodeSupport; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import jaxx.runtime.JAXXObject; import javax.swing.AbstractButton; import javax.swing.JComponent; @@ -48,9 +47,6 @@ public class GoUpUIAction extends AbstractContentUIAction { private static final long serialVersionUID = 1L; - /** Logger */ - private static final Log log = LogFactory.getLog(GoUpUIAction.class); - public static final String ACTION_NAME = "goUp"; public GoUpUIAction(ObserveMainUI mainUI) { @@ -74,7 +70,7 @@ public class GoUpUIAction extends AbstractContentUIAction { } @Override - public void updateAction(ContentUI<?, ?> ui, AbstractButton editor) { + public void updateAction(JAXXObject ui, AbstractButton editor) { NavigationTree treeHelper = getMainUI().getNavigation(); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java new file mode 100644 index 0000000..9f1071e --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java @@ -0,0 +1,101 @@ +package fr.ird.observe.application.swing.ui.actions.storage; + +import fr.ird.observe.application.swing.configuration.RemoteDataSourceConfiguration; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import fr.ird.observe.application.swing.ui.storage.StorageUIModel; +import fr.ird.observe.application.swing.ui.storage.tabs.ConfigUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.AbstractButton; +import javax.swing.JCheckBox; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class SaveCurrentRemoteConfigurationUIAction extends AbstractUIAction { + + /** Logger */ + private static final Log log = LogFactory.getLog(SaveCurrentRemoteConfigurationUIAction.class); + + public static final String ACTION_NAME = SaveCurrentRemoteConfigurationUIAction.class.getName(); + + public SaveCurrentRemoteConfigurationUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, t("observe.storage.remoteConfiguration.presets.save"), t("observe.storage.remoteConfiguration.presets.save"), "save", "ctrl pressed S"); + } + + @Override + public void actionPerformed(ActionEvent e) { + + AbstractButton value = (AbstractButton) getValue(EDITOR); + ConfigUI configUI = (ConfigUI) value.getClientProperty(CLIENT_PROPERTY_UI); + StorageUIModel model = configUI.getModel(); + + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(0, 2)); + + JTextField question = new JTextField(); + panel.add(new JLabel("Nom de la connexion")); + panel.add(question); + + panel.add(new JLabel("Url")); + JTextField url = new JTextField(model.getRemoteUrl()); + url.setEditable(false); + panel.add(url); + + panel.add(new JLabel("Login")); + JTextField login = new JTextField(model.getRemoteLogin()); + login.setEditable(false); + panel.add(login); + + panel.add(new JLabel("Mot de passe")); + JTextField password = new JTextField(new String(model.getRemotePassword())); + password.setEditable(false); + panel.add(password); + + JCheckBox databaseName = new JCheckBox("Utilisation SSL", model.isUseSsl()); + databaseName.setEnabled(false); + panel.add(databaseName); + + question.setPreferredSize(new Dimension(200, 30)); + int response = UIHelper.askUser(getMainUI(), "Enregistrement de la configuration", panel, JOptionPane.QUESTION_MESSAGE, new String[]{ + t("observe.action.save"), + t("observe.action.cancel") + }, 0); + String configurationName = question.getText().trim(); + + if (response != 0 || configurationName.isEmpty()) { + if (log.isInfoEnabled()) { + log.info("User skip save of configuration"); + } + return; + } + if (log.isInfoEnabled()) { + log.info("Will add remote configuration: " + configurationName); + } + getMainUI().getStatus().setStatus("Ajout de la configuration " + configurationName); + + RemoteDataSourceConfiguration configuration = new RemoteDataSourceConfiguration(); + configuration.setName(configurationName); + configuration.setUrl(model.getRemoteUrl()); + configuration.setLogin(model.getRemoteLogin()); + configuration.setPassword(new String(model.getRemotePassword())); + configuration.setUseSsl(model.isUseSsl()); + getMainUI().getConfig().addRemoteDataSourceConfigurations(configuration); + configUI.getHandler().addRemoteConfiguration(configuration); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java new file mode 100644 index 0000000..adf9b17 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java @@ -0,0 +1,104 @@ +package fr.ird.observe.application.swing.ui.actions.storage; + +import fr.ird.observe.application.swing.configuration.ServerDataSourceConfiguration; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import fr.ird.observe.application.swing.ui.storage.StorageUIModel; +import fr.ird.observe.application.swing.ui.storage.tabs.ConfigUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.AbstractButton; +import javax.swing.JLabel; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTextField; +import java.awt.Dimension; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; + +import static org.nuiton.i18n.I18n.t; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class SaveCurrentServerConfigurationUIAction extends AbstractUIAction { + + /** Logger */ + private static final Log log = LogFactory.getLog(SaveCurrentServerConfigurationUIAction.class); + + public static final String ACTION_NAME = SaveCurrentServerConfigurationUIAction.class.getName(); + + public SaveCurrentServerConfigurationUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, t("observe.storage.serverConfiguration.presets.save"), t("observe.storage.serverConfiguration.presets.save"), "save", "ctrl pressed S"); + } + + @Override + public void actionPerformed(ActionEvent e) { + + AbstractButton value = (AbstractButton) getValue(EDITOR); + ConfigUI configUI = (ConfigUI) value.getClientProperty(CLIENT_PROPERTY_UI); + StorageUIModel model = configUI.getModel(); + + JPanel panel = new JPanel(); + panel.setLayout(new GridLayout(0, 2)); + + JTextField question = new JTextField(); + panel.add(new JLabel("Nom de la connexion")); + panel.add(question); + + panel.add(new JLabel("Url")); + JTextField url = new JTextField(model.getRemoteUrl()); + url.setEditable(false); + panel.add(url); + + panel.add(new JLabel("Login")); + JTextField login = new JTextField(model.getRemoteLogin()); + login.setEditable(false); + panel.add(login); + + panel.add(new JLabel("Mot de passe")); + JTextField password = new JTextField(new String(model.getRemotePassword())); + password.setEditable(false); + panel.add(password); + + panel.add(new JLabel("Nom de la base")); + JTextField databaseName = new JTextField(model.getServerDatabase()); + databaseName.setEditable(false); + panel.add(databaseName); + + question.setPreferredSize(new Dimension(200, 30)); + int response = UIHelper.askUser(getMainUI(), "Enregistrement de la configuration", panel, JOptionPane.QUESTION_MESSAGE, new String[]{ + t("observe.action.save"), + t("observe.action.cancel") + }, 0); + String configurationName = question.getText().trim(); + + if (response != 0 || configurationName.isEmpty()) { + if (log.isInfoEnabled()) { + log.info("User skip save of configuration"); + } + return; + } + if (log.isInfoEnabled()) { + log.info("Will add remote configuration: " + configurationName); + } + getMainUI().getStatus().setStatus("Ajout de la configuration " + configurationName); + + + ServerDataSourceConfiguration configuration = new ServerDataSourceConfiguration(); + configuration.setName(configurationName); + configuration.setUrl(model.getRemoteUrl()); + configuration.setLogin(model.getRemoteLogin()); + configuration.setPassword(new String(model.getRemotePassword())); + configuration.setDatabaseName(model.getServerDatabase()); + getMainUI().getConfig().addServerDataSourceConfigurations(configuration); + + configUI.getHandler().addServerConfiguration(configuration); + } +} + diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java new file mode 100644 index 0000000..d0e1c58 --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java @@ -0,0 +1,61 @@ +package fr.ird.observe.application.swing.ui.actions.storage; + +import fr.ird.observe.application.swing.configuration.RemoteDataSourceConfiguration; +import fr.ird.observe.application.swing.db.constants.ConnexionStatus; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import fr.ird.observe.application.swing.ui.storage.StorageUI; +import fr.ird.observe.application.swing.ui.storage.StorageUIModel; +import fr.ird.observe.application.swing.ui.storage.tabs.ConfigUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.AbstractButton; +import javax.swing.SwingUtilities; +import java.awt.event.ActionEvent; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class UseRemoteConfigurationUIAction extends AbstractUIAction { + + /** Logger */ + private static final Log log = LogFactory.getLog(UseRemoteConfigurationUIAction.class); + + public static final String ACTION_NAME = UseRemoteConfigurationUIAction.class.getName(); + + public UseRemoteConfigurationUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, null, null, "db-remote", null); + } + + @Override + public void actionPerformed(ActionEvent e) { + + AbstractButton value = (AbstractButton) getValue(EDITOR); + ConfigUI configUI = (ConfigUI) value.getClientProperty(CLIENT_PROPERTY_UI); + RemoteDataSourceConfiguration configuration = (RemoteDataSourceConfiguration) value.getClientProperty("configuration"); + + if (log.isInfoEnabled()) { + log.info("Use remote configuration: " + configuration.getName()); + } + StorageUIModel model = configUI.getModel(); + + model.setRemoteUrl(configuration.getUrl()); + model.setRemoteLogin(configuration.getLogin()); + model.setRemotePassword(configuration.getPassword().toCharArray()); + model.setUseSsl(configuration.isUseSsl()); + + StorageUI parentContainer = configUI.getParentContainer(StorageUI.class); + SwingUtilities.invokeLater(() -> { + configUI.getTestRemoteAction().doClick(); + if (ConnexionStatus.FAILED == configUI.getModel().getConnexionStatus()) { + configUI.getRemoteUrl().requestFocusInWindow(); + } else { + parentContainer.getNextAction().requestFocusInWindow(); + } + }); + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java new file mode 100644 index 0000000..ff37bad --- /dev/null +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java @@ -0,0 +1,63 @@ +package fr.ird.observe.application.swing.ui.actions.storage; + +import fr.ird.observe.application.swing.configuration.ServerDataSourceConfiguration; +import fr.ird.observe.application.swing.db.constants.ConnexionStatus; +import fr.ird.observe.application.swing.ui.ObserveMainUI; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import fr.ird.observe.application.swing.ui.storage.StorageUI; +import fr.ird.observe.application.swing.ui.storage.StorageUIModel; +import fr.ird.observe.application.swing.ui.storage.tabs.ConfigUI; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import javax.swing.AbstractButton; +import javax.swing.SwingUtilities; +import java.awt.event.ActionEvent; + +/** + * Created on 18/12/16. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 6.0 + */ +public class UseServerConfigurationUIAction extends AbstractUIAction { + + /** Logger */ + private static final Log log = LogFactory.getLog(UseServerConfigurationUIAction.class); + + public static final String ACTION_NAME = UseServerConfigurationUIAction.class.getName(); + + public UseServerConfigurationUIAction(ObserveMainUI mainUI) { + super(mainUI, ACTION_NAME, null, null, "db-server", null); + } + + @Override + public void actionPerformed(ActionEvent e) { + + AbstractButton value = (AbstractButton) getValue(EDITOR); + ConfigUI configUI = (ConfigUI) value.getClientProperty(CLIENT_PROPERTY_UI); + ServerDataSourceConfiguration configuration = (ServerDataSourceConfiguration) value.getClientProperty("configuration"); + if (log.isInfoEnabled()) { + log.info("Use server configuration: " + configuration.getName()); + } + + StorageUIModel model = configUI.getModel(); + + model.setRemoteUrl(configuration.getUrl()); + model.setRemoteLogin(configuration.getLogin()); + model.setRemotePassword(configuration.getPassword().toCharArray()); + model.setServerDatabase(configuration.getDatabaseName()); + + StorageUI parentContainer = configUI.getParentContainer(StorageUI.class); + + SwingUtilities.invokeLater(() -> { + configUI.getTestRemoteAction().doClick(); + if (ConnexionStatus.FAILED == configUI.getModel().getConnexionStatus()) { + configUI.getRemoteUrl().requestFocusInWindow(); + } else { + parentContainer.getNextAction().requestFocusInWindow(); + } + }); + + } +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx index d992cb1..9c8c984 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx @@ -28,8 +28,10 @@ <import> fr.ird.observe.application.swing.I18nEnumHelper - fr.ird.observe.application.swing.ui.storage.StorageStep fr.ird.observe.application.swing.db.constants.ConnexionStatus + fr.ird.observe.application.swing.ui.actions.storage.SaveCurrentRemoteConfigurationUIAction + fr.ird.observe.application.swing.ui.actions.storage.SaveCurrentServerConfigurationUIAction + fr.ird.observe.application.swing.ui.storage.StorageStep java.awt.Color java.awt.Dimension @@ -85,9 +87,7 @@ </Table> <!-- configurer creation base locale et import referentiel depuis un server distant --> - <Table id='IMPORT_SERVER_STORAGE' - fill="both" - constraints='"IMPORT_SERVER_STORAGE"'> + <Table id='IMPORT_SERVER_STORAGE' fill="both" constraints='"IMPORT_SERVER_STORAGE"'> <row> <cell> <JLabel text='observe.storage.importServerStorage.config'/> @@ -102,33 +102,45 @@ </Table> <!-- configurer connexion a base distante --> - <Table id='USE_REMOTE' - constraints='"USE_REMOTE"' fill='both'> + <Table id='USE_REMOTE' constraints='"USE_REMOTE"' fill='both'> <row> <cell> - <JLabel text='observe.storage.useRemoteStorage.config'/> + <JPanel layout="{new BorderLayout()}"> + <JLabel constraints='BorderLayout.WEST' text='observe.storage.useRemoteStorage.config'/> + <JMenuBar id='remoteMenuBar' constraints='BorderLayout.EAST'> + <JMenu id='remoteMenu'> + <JMenuItem id="saveRemoteConfiguration" /> + <JSeparator/> + </JMenu> + </JMenuBar> + </JPanel> </cell> </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_REMOTE_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_REMOTE_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> <!-- configurer connexion au server base distante --> - <Table id='USE_SERVER' - constraints='"USE_SERVER"' fill='both'> + <Table id='USE_SERVER' constraints='"USE_SERVER"' fill='both'> <row> <cell> - <JLabel text='observe.storage.useServerStorage.config'/> + <JPanel layout="{new BorderLayout()}"> + <JLabel constraints='BorderLayout.WEST' text='observe.storage.useServerStorage.config'/> + <JMenuBar id='serverMenuBar' constraints='BorderLayout.EAST'> + <JMenu id='serverMenu'> + <JMenuItem id="saveServerConfiguration"/> + <JSeparator/> + </JMenu> + </JMenuBar> + </JPanel> </cell> </row> <row> <cell weighty='1' weightx='1'> - <JPanel id='USE_SERVER_content' - minimumSize='{new Dimension(20,300)}'/> + <JPanel id='USE_SERVER_content' minimumSize='{new Dimension(20,300)}'/> </cell> </row> </Table> @@ -165,8 +177,7 @@ </row> <row> <cell anchor='west'> - <JLabel id="serverDataBaseLabel" - text='observe.storage.server.dataBase'/> + <JLabel id="serverDataBaseLabel" text='observe.storage.server.dataBase'/> </cell> <cell weightx='1' fill="both" anchor='east'> <JTextField id="serverDataBase" @@ -190,8 +201,7 @@ <!-- tester la connexion --> <row> <cell columns='2'> - <JButton id="testRemoteAction" - onActionPerformed='getModel().testRemote()'/> + <JButton id="testRemoteAction" onActionPerformed='getModel().testRemote()'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss index 75a2b01..6a707c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss @@ -20,6 +20,20 @@ * #L% */ +JMenuBar { + opaque:true; + borderPainted:false; + margin:{new Insets(0, 0, 0, 0)}; + border: {null}; +} + +JMenu { + opaque:true; + borderPainted:false; + border: {null}; + margin:{new Insets(0, 0, 0, 0)}; +} + #configContent { layout:{configLayout}; } @@ -137,3 +151,23 @@ toolTipText:"observe.storage.store.remote.config.tip"; selected:{model.isStoreRemoteConfig()}; } + +#serverMenu { + text:"observe.storage.serverConfiguration.presets"; + actionIcon:db-server; + mnemonic:S; +} + +#remoteMenu { + text:"observe.storage.remoteConfiguration.presets"; + actionIcon:db-remote; + mnemonic:R; +} + +#saveRemoteConfiguration { + _observeAction:{SaveCurrentRemoteConfigurationUIAction.ACTION_NAME}; +} + +#saveServerConfiguration { + _observeAction:{SaveCurrentServerConfigurationUIAction.ACTION_NAME}; +} \ No newline at end of file diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java index 012b728..77382c3 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java @@ -24,10 +24,16 @@ package fr.ird.observe.application.swing.ui.storage.tabs; import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.ObserveTextGenerator; +import fr.ird.observe.application.swing.configuration.RemoteDataSourceConfiguration; +import fr.ird.observe.application.swing.configuration.ServerDataSourceConfiguration; import fr.ird.observe.application.swing.configuration.constants.DbMode; import fr.ird.observe.application.swing.db.constants.ConnexionStatus; import fr.ird.observe.application.swing.ui.MnemonicHelper; import fr.ird.observe.application.swing.ui.UIHelper; +import fr.ird.observe.application.swing.ui.actions.AbstractUIAction; +import fr.ird.observe.application.swing.ui.actions.storage.UseRemoteConfigurationUIAction; +import fr.ird.observe.application.swing.ui.actions.storage.UseServerConfigurationUIAction; +import fr.ird.observe.application.swing.ui.content.ObserveActionMap; import fr.ird.observe.application.swing.ui.storage.StorageStep; import fr.ird.observe.application.swing.ui.storage.StorageUIModel; import jaxx.runtime.spi.UIHandler; @@ -35,14 +41,19 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.swing.AbstractAction; +import javax.swing.AbstractButton; +import javax.swing.ActionMap; import javax.swing.Icon; import javax.swing.JComponent; +import javax.swing.JMenuItem; import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.beans.PropertyChangeListener; import java.io.File; +import java.util.Objects; +import static fr.ird.observe.application.swing.ui.content.ContentUIInitializer.OBSERVE_ACTION; import static javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW; import static org.nuiton.i18n.I18n.t; @@ -87,7 +98,8 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI }; ui.getModel().addPropertyChangeListener(listener); - ui.getActionMap().put(ACTION_DO_CHOOSE_FILE, new AbstractAction() { + ActionMap actionMap = ui.getActionMap(); + actionMap.put(ACTION_DO_CHOOSE_FILE, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { if (StorageStep.CONFIG == ui.getModel().getStep()) { @@ -98,7 +110,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(MnemonicHelper.KEY_STROKE_STORAGE_DO_CHOOSE_FILE, ACTION_DO_CHOOSE_FILE); MnemonicHelper.addKeyStroke(ui.getFileChooserAction(), MnemonicHelper.KEY_STROKE_STORAGE_DO_CHOOSE_FILE); - ui.getActionMap().put(ACTION_DO_USE_SSL, new AbstractAction() { + actionMap.put(ACTION_DO_USE_SSL, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { if (StorageStep.CONFIG == ui.getModel().getStep()) { @@ -109,7 +121,7 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(MnemonicHelper.KEY_STROKE_STORAGE_DO_USE_SSL, ACTION_DO_USE_SSL); MnemonicHelper.addKeyStroke(ui.getRemoteUseSsl(), MnemonicHelper.KEY_STROKE_STORAGE_DO_USE_SSL); - ui.getActionMap().put(ACTION_DO_KEEP_CONFIGURATION, new AbstractAction() { + actionMap.put(ACTION_DO_KEEP_CONFIGURATION, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { if (StorageStep.CONFIG == ui.getModel().getStep()) { @@ -119,6 +131,44 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI }); ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(MnemonicHelper.KEY_STROKE_STORAGE_KEEP_CONFIGURATION, ACTION_DO_KEEP_CONFIGURATION); MnemonicHelper.addKeyStroke(ui.getStoreRemoteConfig(), MnemonicHelper.KEY_STROKE_STORAGE_KEEP_CONFIGURATION); + + ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); + init(observeActionMap, ui.getSaveRemoteConfiguration()); + init(observeActionMap, ui.getSaveServerConfiguration()); + init(observeActionMap, ui.getServerMenu()); + init(observeActionMap, ui.getRemoteMenu()); + + for (RemoteDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getRemoteDataSourceConfigurations()) { + addRemoteConfiguration(configuration); + } + + for (ServerDataSourceConfiguration configuration : ObserveSwingApplicationContext.get().getMainUI().getConfig().getServerDataSourceConfigurations()) { + addServerConfiguration(configuration); + } + } + + public void addRemoteConfiguration(RemoteDataSourceConfiguration configuration) { + ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); + JMenuItem item = new JMenuItem(configuration.getName()); + item.putClientProperty("configuration", configuration); + item.putClientProperty("text", configuration.getName()); + item.putClientProperty("toolTipText", configuration.getName()); + item.putClientProperty(OBSERVE_ACTION, UseRemoteConfigurationUIAction.ACTION_NAME); + AbstractUIAction action = init(observeActionMap, item); + action.updateAction(ui, item); + ui.getRemoteMenu().add(item); + } + + public void addServerConfiguration(ServerDataSourceConfiguration configuration) { + ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); + JMenuItem item = new JMenuItem(configuration.getName()); + item.putClientProperty("configuration", configuration); + item.putClientProperty("text", configuration.getName()); + item.putClientProperty("toolTipText", configuration.getName()); + item.putClientProperty(OBSERVE_ACTION, UseServerConfigurationUIAction.ACTION_NAME); + AbstractUIAction action = init(observeActionMap, item); + action.updateAction(ui, item); + ui.getServerMenu().add(item); } public void refreshConfig(ConfigUI ui, String configId) { @@ -168,4 +218,22 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI } + protected AbstractUIAction init(ActionMap actionMap, AbstractButton editor) { + String actionId = (String) editor.getClientProperty(OBSERVE_ACTION); + if (actionId == null) { + // le boutton n'est pas commun + return null; + } + + // on a trouve une action commune + AbstractUIAction action = (AbstractUIAction) actionMap.get(actionId); + Objects.requireNonNull(action, "action [" + actionId + "] not found for ui " + ui.getClass().getName()); + + if (log.isDebugEnabled()) { + log.debug("init common action " + actionId); + } + + action.initAction(ui, editor); + return action; + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java index b2d3ed0..f4ac6e4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/tree/navigation/nodes/NavigationTreeNodeSupport.java @@ -28,6 +28,7 @@ import fr.ird.observe.application.swing.ui.actions.content.SelectNodeUIAction; import fr.ird.observe.application.swing.ui.content.ContentUI; import fr.ird.observe.application.swing.ui.tree.ObserveTreeNodeSupport; import fr.ird.observe.services.ObserveServicesProvider; +import jaxx.runtime.JAXXObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -195,7 +196,7 @@ public abstract class NavigationTreeNodeSupport<O> extends ObserveTreeNodeSuppor return isOpen() ? Color.BLACK : Color.GRAY; } - public JMenuItem toMenuItem(SelectNodeUIAction action, ContentUI<?, ?> ui) { + public JMenuItem toMenuItem(SelectNodeUIAction action, JAXXObject ui) { JMenuItem mi = new JMenuItem(); AbstractAction a = new AbstractAction() { diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index cf99d5a..e65d73f 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -1684,6 +1684,8 @@ observe.storage.remote.login=Login observe.storage.remote.password=Password observe.storage.remote.url=Url observe.storage.remote.useSll=Use ssl? +observe.storage.remoteConfiguration.presets=Remote configuration presets +observe.storage.remoteConfiguration.presets.save=Save current configuration observe.storage.report.action.migrate=Update policy observe.storage.report.can.migrate=Update if necessary (current version\: %1$s) observe.storage.report.can.not.migrate=No update possible @@ -1697,6 +1699,8 @@ observe.storage.server.sessionExpire.change=Change observe.storage.server.sessionExpire.close=Close observe.storage.server.sessionExpire.reload=Re-connect observe.storage.server.sessionExpire.title=Lost connexion +observe.storage.serverConfiguration.presets=Server configuration presets +observe.storage.serverConfiguration.presets.save=Save current configuration observe.storage.showMigrationProgression=Display progression while updating observe.storage.showMigrationSql=display sql request while updating observe.storage.step.creationMode=Create local database diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 0f838ee..460f430 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -1684,6 +1684,8 @@ observe.storage.remote.login=Login observe.storage.remote.password=Contraseña observe.storage.remote.url=Url observe.storage.remote.useSll=¿modo ssl? +observe.storage.remoteConfiguration.presets=Configuration enregistrées \#TODO +observe.storage.remoteConfiguration.presets.save=Enregister cette configuration \#TODO observe.storage.report.action.migrate=Politica de actualización observe.storage.report.can.migrate=Actualizar si es necesario (version actual \: %1$s) observe.storage.report.can.not.migrate=No es posible actualizar @@ -1697,6 +1699,8 @@ observe.storage.server.sessionExpire.change=Cambiar observe.storage.server.sessionExpire.close=Fermer observe.storage.server.sessionExpire.reload=Connectar de nuevo observe.storage.server.sessionExpire.title=Conexión perdida +observe.storage.serverConfiguration.presets=Configuration enregistrées \#TODO +observe.storage.serverConfiguration.presets.save=Enregister cette configuration \#TODO observe.storage.showMigrationProgression=Mostrar el progreso de las actualizaciones observe.storage.showMigrationSql=Mostrar las consultas sql de las actualizaciones observe.storage.step.creationMode=Creación de la base local diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index 87ecd91..e5b2f4a 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -1684,6 +1684,8 @@ observe.storage.remote.login=Utilisateur observe.storage.remote.password=Mot de passe observe.storage.remote.url=Url observe.storage.remote.useSll=mode ssl ? +observe.storage.remoteConfiguration.presets=Configurations enregistrées +observe.storage.remoteConfiguration.presets.save=Enregister cette configuration observe.storage.report.action.migrate=Politique de mise à jour observe.storage.report.can.migrate=Mise à jour si nécessaire (version actuelle \: %1$s) observe.storage.report.can.not.migrate=Pas de mise à jour possible @@ -1697,6 +1699,8 @@ observe.storage.server.sessionExpire.change=Changer observe.storage.server.sessionExpire.close=Fermer observe.storage.server.sessionExpire.reload=Re-connecter observe.storage.server.sessionExpire.title=Connexion perdue +observe.storage.serverConfiguration.presets=Configurations enregistrées +observe.storage.serverConfiguration.presets.save=Enregister cette configuration observe.storage.showMigrationProgression=Afficher la progression lors des mises à jour observe.storage.showMigrationSql=Afficher les requêtes sql lors des mises à jour observe.storage.step.creationMode=Création base locale diff --git a/pom.xml b/pom.xml index 6c3a5bf..40f3911 100644 --- a/pom.xml +++ b/pom.xml @@ -169,7 +169,7 @@ <nuitonI18nVersion>3.6.2</nuitonI18nVersion> <nuitonValidatorVersion>3.0.1</nuitonValidatorVersion> <nuitonUtilsVersion>3.0-rc-16</nuitonUtilsVersion> - <nuitonConfigVersion>3.1</nuitonConfigVersion> + <nuitonConfigVersion>3.2-SNAPSHOT</nuitonConfigVersion> <xworkVersion>2.3.31</xworkVersion> <hibernateVersion>5.1.3.Final</hibernateVersion> <sl4jVersion>1.7.21</sl4jVersion> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 3684d560a5b2aac290c94f57631a1bdfab791ade Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:36:58 2016 +0100 Suppression des anciennes options de configuration liées à la sauvegarde des connexions (Refs #8555) --- .../src/main/config/ObserveSwingApplication.ini | 47 ---------------------- .../ObserveSwingApplicationConfig.java | 5 --- ...pplication-swing-configuration_en_GB.properties | 8 ---- ...pplication-swing-configuration_es_ES.properties | 8 ---- ...pplication-swing-configuration_fr_FR.properties | 8 ---- .../ObserveSwingApplicationDataSourcesManager.java | 16 ++++---- .../application/swing/ui/MnemonicHelper.java | 1 - .../ui/actions/menu/config/ShowConfigAction.java | 8 ---- .../SaveCurrentRemoteConfigurationUIAction.java | 15 ++++--- .../SaveCurrentServerConfigurationUIAction.java | 18 ++++----- .../storage/UseRemoteConfigurationUIAction.java | 5 +-- .../storage/UseServerConfigurationUIAction.java | 5 +-- .../swing/ui/storage/StorageUIHandler.java | 43 -------------------- .../swing/ui/storage/StorageUIModel.java | 14 ------- .../swing/ui/storage/tabs/ConfigUI.jaxx | 7 ---- .../swing/ui/storage/tabs/ConfigUI.jcss | 6 --- .../swing/ui/storage/tabs/ConfigUIHandler.java | 12 ------ .../i18n/application-swing_en_GB.properties | 26 +----------- .../i18n/application-swing_es_ES.properties | 26 +----------- .../i18n/application-swing_fr_FR.properties | 26 +----------- 20 files changed, 33 insertions(+), 271 deletions(-) diff --git a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini index 332a225..c9f9e77 100644 --- a/application-swing-configuration/src/main/config/ObserveSwingApplication.ini +++ b/application-swing-configuration/src/main/config/ObserveSwingApplication.ini @@ -162,59 +162,12 @@ description = observe.config.serverDataSourceConfigurations.description key = serverDataSourceConfigurations type = fr.ird.observe.application.swing.configuration.ServerDataSourceConfiguration[] -[option obstunaUrl] -description = observe.config.obstuna.url.description -key = obstuna.url -type = string -defaultValue = jdbc:postgresql:///obstuna - -[option obstunaLogin] -description = observe.config.obstuna.login.description -key = obstuna.username -type = string -defaultValue = utilisateur - -[option obstunaPassword] -description = observe.config.obstuna.password.description -key = obstuna.password -type = string -defaultValue = -transient = true - -[option obstunaUseSslCert] -description = observe.config.obstuna.useSsl.description -key = obstuna.useSsl -type = Boolean -defaultValue = false - [option obstunaCanMigrate] description = observe.config.pg.can.migrate.description key = pg.canMigrate type = Boolean defaultValue = false -[option serverUrl] -description = observe.config.server.url.description -key = server.url -type = url - -[option serverLogin] -description = observe.config.server.login.description -key = server.login -type = string -defaultValue = - -[option serverPassword] -description = observe.config.server.password.description -key = server.password -type = string -defaultValue = - -[option serverDatabaseName] -description = observe.config.server.dataBaseName.description -key = server.dataBaseName -type = string - [option defaultDbMode] description = observe.config.defaultDbMode key = defaultDbMode diff --git a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java index 753a194..c6ed6cd 100644 --- a/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java +++ b/application-swing-configuration/src/main/java/fr/ird/observe/application/swing/configuration/ObserveSwingApplicationConfig.java @@ -187,11 +187,6 @@ public class ObserveSwingApplicationConfig extends GeneratedObserveSwingApplicat applicationConfig.parse(args); - //Fixes https://forge.codelutin.com/issues/8556 - if ("null".equals(getServerDatabaseName())) { - setServerDatabaseName(""); - saveForUser(); - } } @Override diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties index b6bfcef..288f4f4 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_en_GB.properties @@ -53,16 +53,8 @@ observe.config.observation.mammiferes=Observation of mammals observe.config.observation.mensurations=Observation of mensurations observe.config.observation.oiseaux=Observation of birds observe.config.observation.rejetsThons=Observation of discarded target catch -observe.config.obstuna.login.description=Remote login -observe.config.obstuna.password.description=Remote password -observe.config.obstuna.url.description=URL of remote data source -observe.config.obstuna.useSsl.description=Flag sets to true when your are using remote with ssl observe.config.pg.can.migrate.description=Flat sets to true when you can migrate remote data sources observe.config.remoteDataSourceConfigurations.description=Remote data source configurations -observe.config.server.dataBaseName.description=Optional name of database name on server -observe.config.server.login.description=Server login -observe.config.server.password.description=Server password -observe.config.server.url.description=Server url observe.config.serverDataSourceConfigurations.description=Server data source configurations observe.config.showMigrationProgression=Show migration progression observe.config.showMigrationSql=Show migration sql queries diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties index 496295e..69fa8b9 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_es_ES.properties @@ -53,16 +53,8 @@ observe.config.observation.mammiferes=Observación de mamiferos observe.config.observation.mensurations=Observación de mendiciones observe.config.observation.oiseaux=Observaciones de pájaros observe.config.observation.rejetsThons=Observación de descartes de atún -observe.config.obstuna.login.description=Nombre de usuario para conectarse a la base Obstuna -observe.config.obstuna.password.description=Contraseña para conectarse a la base Obstuna -observe.config.obstuna.url.description=Url de conexión a la base Obstuna -observe.config.obstuna.useSsl.description=Bandera para permitir la utilización del modo ssl para la conexión a Obstuna observe.config.pg.can.migrate.description=Autorizar la actualización de las bases remotas (debe ser el propietario de la base) observe.config.remoteDataSourceConfigurations.description=Configuration de bases distantes \#TODO -observe.config.server.dataBaseName.description=El nombre opcinal de la base de referencia sobre el servidor -observe.config.server.login.description=Identificador del usuario -observe.config.server.password.description=La contraseña del usuario -observe.config.server.url.description=La dirección (url) del servidor observe.config.serverDataSourceConfigurations.description=Configurations de serveurs distants \#TODO observe.config.showMigrationProgression=Mostar los logs de actualización de una base de datos observe.config.showMigrationSql=Mostrar en los logs las consultas realizadas durante la actualización de una base de datos diff --git a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties index 4e368f3..a600367 100644 --- a/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties +++ b/application-swing-configuration/src/main/resources/i18n/application-swing-configuration_fr_FR.properties @@ -53,16 +53,8 @@ observe.config.observation.mammiferes=Observation des mammifères observe.config.observation.mensurations=Observation des mensurations observe.config.observation.oiseaux=Observation des oiseaux observe.config.observation.rejetsThons=Observation des rejets thon -observe.config.obstuna.login.description=Le nom d'utilisateur pour se connecter à la base Obstuna -observe.config.obstuna.password.description=Le mote de passe pour se connecter à la base Obstuna -observe.config.obstuna.url.description=L'url de connexion à la base Obstuna -observe.config.obstuna.useSsl.description=Drapeau pour permettre l'utilisation du mode ssl pour la connexion à Obstuna observe.config.pg.can.migrate.description=Autoriser la mise à jour des bases distantes (il faut être propriétaire de la base) observe.config.remoteDataSourceConfigurations.description=Configurations de bases distantes -observe.config.server.dataBaseName.description=Le nom optionel de la base cible sur le serveur -observe.config.server.login.description=Identifiant de l'utilisateur -observe.config.server.password.description=Le mot de passe de l'utilisateur -observe.config.server.url.description=L'url du serveur observe.config.serverDataSourceConfigurations.description=Configuration de serveurs distants observe.config.showMigrationProgression=Afficher dans les logs la progression de la mise à jour d'une base observe.config.showMigrationSql=Afficher dans les logs les requêtes jouées lors de la mise à jour d'une base 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 9643249..90bec57 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 @@ -184,10 +184,10 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { return configurationMainFactory.createObserveDataSourceConfigurationTopiaPG( label, - config.getObstunaUrl(), - config.getObstunaLogin(), - config.getObstunaPassword().toCharArray(), - config.isObstunaUseSslCert(), + null, + null, + new char[0], + false, config.isShowMigrationProgression(), config.isShowMigrationSql(), config.getModelVersion() @@ -200,10 +200,10 @@ public class ObserveSwingApplicationDataSourcesManager implements Closeable { return configurationMainFactory.createObserveDataSourceConfigurationRest( label, - config.getServerUrl(), - config.getServerLogin(), - config.getServerPassword().toCharArray(), - config.getServerDatabaseName(), + null, + null, + new char[0], + null, config.getModelVersion() ); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java index 607cfc0..9675d77 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/MnemonicHelper.java @@ -52,7 +52,6 @@ public class MnemonicHelper { public static final KeyStroke KEY_STROKE_STORAGE_DO_CONFIGURE_REMOTE_SERVER = KeyStroke.getKeyStroke(KeyEvent.VK_R, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_STORAGE_DO_BACKUP = KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_STORAGE_DO_CHOOSE_DIRECTORY = KeyStroke.getKeyStroke(KeyEvent.VK_D, InputEvent.CTRL_MASK); - public static final KeyStroke KEY_STROKE_STORAGE_KEEP_CONFIGURATION = KeyStroke.getKeyStroke(KeyEvent.VK_K, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_STORAGE_DO_USE_SSL = KeyStroke.getKeyStroke(KeyEvent.VK_U, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_STORAGE_DO_CHOOSE_FILE = KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK); public static final KeyStroke KEY_STROKE_ESCAPE = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java index a5be9e4..b0a9a91 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/menu/config/ShowConfigAction.java @@ -154,14 +154,6 @@ public class ShowConfigAction extends AbstractUIAction { helper.addOption(ObserveSwingApplicationConfigOption.VALIDATION_SPEED_MAX_VALUE); helper.addOption(ObserveSwingApplicationConfigOption.VALIDATION_LENGTH_WEIGHT_ENABLE); - helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_URL); - helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_LOGIN); - helper.addOption(ObserveSwingApplicationConfigOption.OBSTUNA_USE_SSL_CERT); - - helper.addOption(ObserveSwingApplicationConfigOption.SERVER_URL); - helper.addOption(ObserveSwingApplicationConfigOption.SERVER_LOGIN); - helper.addOption(ObserveSwingApplicationConfigOption.SERVER_DATABASE_NAME); - } protected void addUiOptions(ObserveConfigUIBuilder helper) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java index 9f1071e..12b9396 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentRemoteConfigurationUIAction.java @@ -49,30 +49,30 @@ public class SaveCurrentRemoteConfigurationUIAction extends AbstractUIAction { panel.setLayout(new GridLayout(0, 2)); JTextField question = new JTextField(); - panel.add(new JLabel("Nom de la connexion")); + panel.add(new JLabel(t("observe.storage.remote.configuration.name"))); panel.add(question); - panel.add(new JLabel("Url")); + panel.add(new JLabel(t("observe.storage.remote.url"))); JTextField url = new JTextField(model.getRemoteUrl()); url.setEditable(false); panel.add(url); - panel.add(new JLabel("Login")); + panel.add(new JLabel(t("observe.storage.remote.login"))); JTextField login = new JTextField(model.getRemoteLogin()); login.setEditable(false); panel.add(login); - panel.add(new JLabel("Mot de passe")); + panel.add(new JLabel(t("observe.storage.remote.password"))); JTextField password = new JTextField(new String(model.getRemotePassword())); password.setEditable(false); panel.add(password); - JCheckBox databaseName = new JCheckBox("Utilisation SSL", model.isUseSsl()); + JCheckBox databaseName = new JCheckBox(t("observe.storage.remote.useSll"), model.isUseSsl()); databaseName.setEnabled(false); panel.add(databaseName); - question.setPreferredSize(new Dimension(200, 30)); - int response = UIHelper.askUser(getMainUI(), "Enregistrement de la configuration", panel, JOptionPane.QUESTION_MESSAGE, new String[]{ + question.setPreferredSize(new Dimension(300, 30)); + int response = UIHelper.askUser(getMainUI(), t("observe.storage.remote.configuration.save.title"), panel, JOptionPane.QUESTION_MESSAGE, new String[]{ t("observe.action.save"), t("observe.action.cancel") }, 0); @@ -87,7 +87,6 @@ public class SaveCurrentRemoteConfigurationUIAction extends AbstractUIAction { if (log.isInfoEnabled()) { log.info("Will add remote configuration: " + configurationName); } - getMainUI().getStatus().setStatus("Ajout de la configuration " + configurationName); RemoteDataSourceConfiguration configuration = new RemoteDataSourceConfiguration(); configuration.setName(configurationName); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java index adf9b17..10a741d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/SaveCurrentServerConfigurationUIAction.java @@ -48,31 +48,31 @@ public class SaveCurrentServerConfigurationUIAction extends AbstractUIAction { panel.setLayout(new GridLayout(0, 2)); JTextField question = new JTextField(); - panel.add(new JLabel("Nom de la connexion")); + panel.add(new JLabel(t("observe.storage.remote.configuration.name"))); panel.add(question); - panel.add(new JLabel("Url")); + panel.add(new JLabel(t("observe.storage.remote.url"))); JTextField url = new JTextField(model.getRemoteUrl()); url.setEditable(false); panel.add(url); - panel.add(new JLabel("Login")); + panel.add(new JLabel(t("observe.storage.remote.login"))); JTextField login = new JTextField(model.getRemoteLogin()); login.setEditable(false); panel.add(login); - panel.add(new JLabel("Mot de passe")); + panel.add(new JLabel(t("observe.storage.remote.password"))); JTextField password = new JTextField(new String(model.getRemotePassword())); password.setEditable(false); panel.add(password); - panel.add(new JLabel("Nom de la base")); + panel.add(new JLabel(t("observe.storage.server.dataBase"))); JTextField databaseName = new JTextField(model.getServerDatabase()); databaseName.setEditable(false); panel.add(databaseName); - question.setPreferredSize(new Dimension(200, 30)); - int response = UIHelper.askUser(getMainUI(), "Enregistrement de la configuration", panel, JOptionPane.QUESTION_MESSAGE, new String[]{ + question.setPreferredSize(new Dimension(300, 30)); + int response = UIHelper.askUser(getMainUI(), t("observe.storage.remote.configuration.save.title"), panel, JOptionPane.QUESTION_MESSAGE, new String[]{ t("observe.action.save"), t("observe.action.cancel") }, 0); @@ -85,10 +85,8 @@ public class SaveCurrentServerConfigurationUIAction extends AbstractUIAction { return; } if (log.isInfoEnabled()) { - log.info("Will add remote configuration: " + configurationName); + log.info("Will add server configuration: " + configurationName); } - getMainUI().getStatus().setStatus("Ajout de la configuration " + configurationName); - ServerDataSourceConfiguration configuration = new ServerDataSourceConfiguration(); configuration.setName(configurationName); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java index d0e1c58..954e73e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseRemoteConfigurationUIAction.java @@ -48,12 +48,11 @@ public class UseRemoteConfigurationUIAction extends AbstractUIAction { model.setRemotePassword(configuration.getPassword().toCharArray()); model.setUseSsl(configuration.isUseSsl()); + configUI.getTestRemoteAction().requestFocusInWindow(); StorageUI parentContainer = configUI.getParentContainer(StorageUI.class); SwingUtilities.invokeLater(() -> { configUI.getTestRemoteAction().doClick(); - if (ConnexionStatus.FAILED == configUI.getModel().getConnexionStatus()) { - configUI.getRemoteUrl().requestFocusInWindow(); - } else { + if (ConnexionStatus.SUCCESS== configUI.getModel().getConnexionStatus()) { parentContainer.getNextAction().requestFocusInWindow(); } }); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java index ff37bad..ac29458 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/storage/UseServerConfigurationUIAction.java @@ -49,12 +49,11 @@ public class UseServerConfigurationUIAction extends AbstractUIAction { model.setServerDatabase(configuration.getDatabaseName()); StorageUI parentContainer = configUI.getParentContainer(StorageUI.class); + configUI.getTestRemoteAction().requestFocusInWindow(); SwingUtilities.invokeLater(() -> { configUI.getTestRemoteAction().doClick(); - if (ConnexionStatus.FAILED == configUI.getModel().getConnexionStatus()) { - configUI.getRemoteUrl().requestFocusInWindow(); - } else { + if (ConnexionStatus.SUCCESS == configUI.getModel().getConnexionStatus()) { parentContainer.getNextAction().requestFocusInWindow(); } }); 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 f636b87..c5dd262 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 @@ -535,10 +535,6 @@ public class StorageUIHandler implements UIHandler<StorageUI> { log.info(">>> main storage opened " + currentDataSource.getLabel()); } - if (model.isStoreRemoteConfig()) { - storeRemoteConfig(model); - } - } catch (Exception ex) { UIHelper.handlingError(ex); throw new RuntimeException(ex); @@ -548,45 +544,6 @@ public class StorageUIHandler implements UIHandler<StorageUI> { } /** - * Sauvegarder dans la configuration de l'application le paramétrage de la - * source de données distante donnée. - * - * @param model le model de la source de données - */ - public void storeRemoteConfig(StorageUIModel model) { - - ObserveSwingApplicationConfig config = ObserveSwingApplicationContext.get().getConfig(); - - // on sauvegarde dans le parametrage dans la configuration de l'application - - if (model.isEditRemoteConfig()) { - - ObserveDataSourceConfigurationTopiaPG configurationTopiaPG = model.toPGStorageConfig(""); - - config.setObstunaUrl(configurationTopiaPG.getJdbcUrl()); - config.setObstunaLogin(configurationTopiaPG.getUsername()); - config.setObstunaPassword(new String(configurationTopiaPG.getPassword())); - config.setObstunaUseSslCert(configurationTopiaPG.isUseSsl()); - config.setShowMigrationProgression(configurationTopiaPG.isShowMigrationProgression()); - config.setShowMigrationSql(configurationTopiaPG.isShowMigrationSql()); - - config.saveForUser(); - - } else if (model.isEditServerConfig()) { - - ObserveDataSourceConfigurationRest configurationRest = model.toRestStorageConfig(""); - - config.setServerUrl(configurationRest.getServerUrl()); - config.setServerLogin(configurationRest.getLogin()); - config.setServerPassword(new String(configurationRest.getPassword())); - config.setServerDatabaseName(configurationRest.getOptionalDatabaseName().orElse("")); - - config.saveForUser(); - - } - } - - /** * Effectue une sauvegarde de la base locale vers le fichier choisi. * * @param dumpProducerService le service de dump 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 2cc05dc..a4daee1 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 @@ -113,8 +113,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { public static final String REMOTE_PASSWORD_PROPERTY_NAME = "remotePassword"; - public static final String STORE_REMOTE_CONFIG_PROPERTY_NAME = "storeRemoteConfig"; - public static final String CONNEXION_STATUS_PROPERTY_NAME = "connexionStatus"; public static final String PREVIOUS_SERVICE_PROPERTY_NAME = "previousSource"; @@ -367,7 +365,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("previous service ? " + source); } - setStoreRemoteConfig(config.isStoreRemoteStorage()); setBackupFile(config.newBackupDataFile()); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); @@ -456,7 +453,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { boolean isLocalStorageExist = config.isLocalStorageExist(); setLocalStorageExist(isLocalStorageExist); - setStoreRemoteConfig(config.isStoreRemoteStorage()); setBackupFile(config.newBackupDataFile()); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); @@ -524,7 +520,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { log.debug("can use server storage ? " + isCanUseServerService()); } - setStoreRemoteConfig(config.isStoreRemoteStorage()); setDumpFile(config.getBackupDirectory()); setShowMigrationProgression(config.isShowMigrationProgression()); setShowMigrationSql(config.isShowMigrationSql()); @@ -672,7 +667,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { firePropertyChange(CONNEXION_STATUS_PROPERTY_NAME, getConnexionStatus()); firePropertyChange(PREVIOUS_SERVICE_PROPERTY_NAME, getPreviousDataSourceConfiguration()); firePropertyChange(LOCAL_STORAGE_EXIST_PROPERTY_NAME, isLocalStorageExist()); - firePropertyChange(STORE_REMOTE_CONFIG_PROPERTY_NAME, isStoreRemoteConfig()); firePropertyChange(REMOTE_URL_ROPERTY_NAME, getRemoteUrl()); firePropertyChange(REMOTE_LOGIN_ROPERTY_NAME, getRemoteLogin()); firePropertyChange(REMOTE_PASSWORD_PROPERTY_NAME, getRemotePassword()); @@ -1209,13 +1203,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { validate(); } - public void setStoreRemoteConfig(boolean storeRemoteConfig) { - boolean oldValue = this.storeRemoteConfig; - this.storeRemoteConfig = storeRemoteConfig; - firePropertyChange(STORE_REMOTE_CONFIG_PROPERTY_NAME, oldValue, - storeRemoteConfig); - } - public void setDoBackup(boolean doBackup) { boolean oldValue = this.doBackup; this.doBackup = doBackup; @@ -1608,7 +1595,6 @@ public class StorageUIModel extends WizardModel<StorageStep> { dst.setLocalStorageExist(isLocalStorageExist()); dst.setBackupFile(getBackupFile()); dst.setDoBackup(isDoBackup()); - dst.setStoreRemoteConfig(isStoreRemoteConfig()); dst.setPreviousDataSourceConfiguration(getPreviousDataSourceConfiguration()); dst.setCanCreateLocalService(isCanCreateLocalService()); dst.setCanUseLocalService(isCanUseLocalService()); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx index 9c8c984..50ec86b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jaxx @@ -191,13 +191,6 @@ </cell> </row> - <!-- sauver dans la configuration --> - <row> - <cell columns='2'> - <JCheckBox id="storeRemoteConfig" - onActionPerformed='getModel().setStoreRemoteConfig(((JCheckBox)event.getSource()).isSelected())'/> - </cell> - </row> <!-- tester la connexion --> <row> <cell columns='2'> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss index 6a707c3..5c5e350 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUI.jcss @@ -146,12 +146,6 @@ JMenu { _failedIcon:{SwingUtil.getUIManagerActionIcon("connect_no")}; } -#storeRemoteConfig { - text:"observe.storage.store.remote.config"; - toolTipText:"observe.storage.store.remote.config.tip"; - selected:{model.isStoreRemoteConfig()}; -} - #serverMenu { text:"observe.storage.serverConfiguration.presets"; actionIcon:db-server; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java index 77382c3..84cc380 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/ConfigUIHandler.java @@ -70,7 +70,6 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI public static final String ACTION_DO_CHOOSE_FILE = "doChooseFile"; public static final String ACTION_DO_USE_SSL = "doUseSsl"; - public static final String ACTION_DO_KEEP_CONFIGURATION = "doKeepConfiguration"; @Override public void afterInit(ConfigUI ui) { @@ -121,17 +120,6 @@ public class ConfigUIHandler extends StorageTabUIHandler<ConfigUI> implements UI ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(MnemonicHelper.KEY_STROKE_STORAGE_DO_USE_SSL, ACTION_DO_USE_SSL); MnemonicHelper.addKeyStroke(ui.getRemoteUseSsl(), MnemonicHelper.KEY_STROKE_STORAGE_DO_USE_SSL); - actionMap.put(ACTION_DO_KEEP_CONFIGURATION, new AbstractAction() { - @Override - public void actionPerformed(ActionEvent e) { - if (StorageStep.CONFIG == ui.getModel().getStep()) { - ui.getStoreRemoteConfig().doClick(); - } - } - }); - ui.getInputMap(WHEN_IN_FOCUSED_WINDOW).put(MnemonicHelper.KEY_STROKE_STORAGE_KEEP_CONFIGURATION, ACTION_DO_KEEP_CONFIGURATION); - MnemonicHelper.addKeyStroke(ui.getStoreRemoteConfig(), MnemonicHelper.KEY_STROKE_STORAGE_KEEP_CONFIGURATION); - ObserveActionMap observeActionMap = ObserveSwingApplicationContext.get().getMainUI().getObserveActionMap(); init(observeActionMap, ui.getSaveRemoteConfiguration()); init(observeActionMap, ui.getSaveServerConfiguration()); diff --git a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties index e65d73f..6c175be 100644 --- a/application-swing/src/main/resources/i18n/application-swing_en_GB.properties +++ b/application-swing/src/main/resources/i18n/application-swing_en_GB.properties @@ -17,7 +17,6 @@ observe.action.auto.copy.to.clipboard.tip=Copy automaticly in clipboard with rep observe.action.back.to.list=Back to list observe.action.back.to.list.tip=Go back to the list observe.action.cancel=Cancel -observe.action.cancel.create.tip=Cancel object creation observe.action.change.storage=Change storage observe.action.change.storage.tip=To change current storage observe.action.choose.db.dump=Choose the backup @@ -59,9 +58,6 @@ observe.action.copy.row.headers=Copy row header observe.action.copy.row.headers.tip=Add in result row headers observe.action.copy.to.clipBoard=Copy in clipboard observe.action.create=Create -observe.action.db.locale.es.tip=Change database language in spanish -observe.action.db.locale.fr.tip=Change database language in french -observe.action.db.locale.uk.tip=Change database language in english observe.action.delete=Delete observe.action.delete.activity.tip=Delete activity observe.action.delete.entry.tip=Delete entry in edition @@ -99,7 +95,6 @@ observe.action.modify=Modify observe.action.new.entry=Add observe.action.new.entry.tip=Create a new entry observe.action.open.screen=Opening screen <%1$s> -observe.action.quitHelp.tip=Quit help screen observe.action.reload.application=reload application observe.action.reload.storage=Reload storage observe.action.reload.storage.tip=Reload current storage @@ -432,7 +427,6 @@ observe.common.length=Length observe.common.length.computed.tip=Length was computed observe.common.length.inf=Length (cm inf.) observe.common.length.observed.tip=Length was observed -observe.common.lengthMeasureType=Lenght measure type observe.common.lengthWeightFormula=Length weight formula observe.common.libelles=Labels observe.common.longitude=Longitude @@ -447,7 +441,6 @@ observe.common.meanValues=Mean values observe.common.meanWeight=Mean weight observe.common.meanWeightComputed.computed.tip=Mean weight was computed (%s) observe.common.meanWeightComputed.observed.tip=Mean weight was observed -observe.common.measureType=Measure type observe.common.minLength=Min length observe.common.minLengthMax=Min length maximum observe.common.minWeight=Min weight @@ -564,8 +557,6 @@ observe.config.category.technical=Technical observe.config.category.technical.description=Technical informations observe.config.category.ui=GUI observe.config.category.ui.description=Graphical interface options -observe.content.action.activity=Create a new activity -observe.content.action.activity.tip=Create a new activity observe.content.action.closeAndCreate=Close and create observe.content.action.closeAndCreate.activity=Next activity observe.content.action.closeAndCreate.activity.tip=close current activity and create a new one @@ -601,14 +592,6 @@ observe.content.action.goto.open.activity=Go to opened activity observe.content.action.goto.open.activity.short=Open activity observe.content.action.goto.open.activity.tip=Go to opened activity observe.content.action.goto.open.maree=Got to opened trip -observe.content.action.goto.open.other.activityLongline=Go to opened activity in another trip -observe.content.action.goto.open.other.activityLongline.tip=Go to opened activity in another trip -observe.content.action.goto.open.other.activitySeine=Go to opened activity in another trip -observe.content.action.goto.open.other.activitySeine.tip=Go to opened activity in another trip -observe.content.action.goto.open.other.maree=Go to opened trip in other program -observe.content.action.goto.open.other.maree.tip=Got to opened trip in other program -observe.content.action.goto.open.other.route=Go to opened road in other trip -observe.content.action.goto.open.other.route.tip=Go to opened road in other trip observe.content.action.goto.open.program.short=Open program observe.content.action.goto.open.program.tip=Go to opened program observe.content.action.goto.open.route=Go to opened route @@ -1576,7 +1559,6 @@ observe.selection.no.trips.selected=No trip selected. observe.selection.selected.trips=%s selected trip(s). observe.storage.action.apply=Apply observe.storage.action.apply.tip=Apply configured storage -observe.storage.action.canMigrate=Update database (current version %1$s) observe.storage.action.cancel=Cancel change storage observe.storage.action.cancel.tip=Cancel change of storage observe.storage.activityLongline.coordinate=Coordinates @@ -1655,10 +1637,6 @@ observe.storage.label.local=Local database observe.storage.label.reference.import.db=data source to import referential observe.storage.label.remote=Remote database observe.storage.label.server=Remote server -observe.storage.label.synchro.incoming=Data source <%1$s> -observe.storage.label.synchro.leftSource=Left data source <%1$s> -observe.storage.label.synchro.referentiel=Central data source <%1$s> -observe.storage.label.synchro.rightSource=Right data source <%1$s> observe.storage.locale.db=(local) observe.storage.message.closed=Connexion [%1$s] was closed observe.storage.message.closing=Closing connexion [%1$s] @@ -1679,6 +1657,8 @@ observe.storage.no.remote.storage=No referential data source defined observe.storage.no.server.storage=No referential server defined observe.storage.noImportData.config=< No configuration > observe.storage.noImportReferentiel.config=< No configuration > +observe.storage.remote.configuration.name=Configuration name +observe.storage.remote.configuration.save.title=Save configuration observe.storage.remote.db=(remote) observe.storage.remote.login=Login observe.storage.remote.password=Password @@ -1706,8 +1686,6 @@ observe.storage.showMigrationSql=display sql request while updating observe.storage.step.creationMode=Create local database observe.storage.step.dbMode.detail=Data source type observe.storage.step.label=Step %1$d/%2$d\: %3$s -observe.storage.store.remote.config=Remerber me -observe.storage.store.remote.config.tip=Remerber me observe.storage.title.change=Change storage observe.storage.useRemoteStorage.config=Configure remote data source to use observe.storage.useRemoteStorage.description=Please configure connexion to remote data source\nYou must validate your connexion to continue. diff --git a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties index 460f430..d25293f 100644 --- a/application-swing/src/main/resources/i18n/application-swing_es_ES.properties +++ b/application-swing/src/main/resources/i18n/application-swing_es_ES.properties @@ -17,7 +17,6 @@ observe.action.auto.copy.to.clipboard.tip=Puesta a punto automáticamente el con observe.action.back.to.list=Volver a la lista observe.action.back.to.list.tip=Volver a la lista de datos observe.action.cancel=Cancelar -observe.action.cancel.create.tip=Cancelar la creación del objeto observe.action.change.storage=Cambiar la fuente de datos observe.action.change.storage.tip=Para cambiar la fuente de datos de la aplicación observe.action.choose.db.dump=Elegir la copia de seguridad @@ -59,9 +58,6 @@ observe.action.copy.row.headers=Copiar las cabeceras de linea observe.action.copy.row.headers.tip=Añadir al resultado las cabeceras de linea (ej. la primera columna) observe.action.copy.to.clipBoard=Copiar el contenido en el portapapeles observe.action.create=Crear -observe.action.db.locale.es.tip=Cambia el idioma del referencial al español -observe.action.db.locale.fr.tip=Cambiar el idioma del referencial al francés -observe.action.db.locale.uk.tip=Cambiar el idioma del referencial al inglés observe.action.delete=Eliminar observe.action.delete.activity.tip=Eliminar la actividad observe.action.delete.entry.tip=Cancelar la edición de la entrada actual @@ -99,7 +95,6 @@ observe.action.modify=Modificar observe.action.new.entry=Nuevo observe.action.new.entry.tip=Crear una nueva entrada observe.action.open.screen=Abrir pantalla <%1$s> -observe.action.quitHelp.tip=Salir de la pantalla de ayuda observe.action.reload.application=Reinicializar la aplicación observe.action.reload.storage=Recargar la fuente de datos observe.action.reload.storage.tip=Cerrar y reabrir la fuente de datos @@ -432,7 +427,6 @@ observe.common.length=Longitud eslora total observe.common.length.computed.tip=Longitud calculada observe.common.length.inf=Longitud (cm inf.) observe.common.length.observed.tip=Longitud observada -observe.common.lengthMeasureType=Tipo de medida observe.common.lengthWeightFormula=Relación de peso observe.common.libelles=Textos observe.common.longitude=Longitude @@ -447,7 +441,6 @@ observe.common.meanValues=Valores medios observe.common.meanWeight=Peso medio (en Kg) observe.common.meanWeightComputed.computed.tip=El peso medio se calculó observe.common.meanWeightComputed.observed.tip=El peso medio se observó -observe.common.measureType=Tipo de medida observe.common.minLength=Talla mínima (en cm) observe.common.minLengthMax=Talla min-max (en cm) observe.common.minWeight=Peso mínimo @@ -564,8 +557,6 @@ observe.config.category.technical=Technical \#TODO observe.config.category.technical.description=Technical informations \#TODO observe.config.category.ui=Otro \#TODO observe.config.category.ui.description=Otras opciones \#TODO -observe.content.action.activity=Crear una nueva actividad -observe.content.action.activity.tip=Crear una nueva actividad para la ruta actual observe.content.action.closeAndCreate=Cerrar y crear observe.content.action.closeAndCreate.activity=Actividad siguiente observe.content.action.closeAndCreate.activity.tip=Cierre de la actividad actual y creación de una nueva @@ -601,14 +592,6 @@ observe.content.action.goto.open.activity=Acceder a la actividad abierta observe.content.action.goto.open.activity.short=Actividad abierta observe.content.action.goto.open.activity.tip=Acceder a la actividad abierta observe.content.action.goto.open.maree=Acceder a la marea abierta -observe.content.action.goto.open.other.activityLongline=Acceder a la actividad en una otra marea -observe.content.action.goto.open.other.activityLongline.tip=Acceder a la actividad abierta en una otra marea -observe.content.action.goto.open.other.activitySeine=Acceder a la actividad en una otra marea -observe.content.action.goto.open.other.activitySeine.tip=Acceder a la actividad abierta en una otra marea -observe.content.action.goto.open.other.maree=Acceder a la marea abierta en otro programa -observe.content.action.goto.open.other.maree.tip=Acceder a la marea abierta (en otro programa) -observe.content.action.goto.open.other.route=Acceder a la ruta abierta en otra marea -observe.content.action.goto.open.other.route.tip=Acceder a la route abierta (en otre marea) observe.content.action.goto.open.program.short=Programa abierto observe.content.action.goto.open.program.tip=Acceder al programa abierto observe.content.action.goto.open.route=Acceder a la route abierta @@ -1576,7 +1559,6 @@ observe.selection.no.trips.selected=Aucune marée sélectionnée. \#TODO observe.selection.selected.trips=%s marée(s) sélectionnée(s). \#TODO observe.storage.action.apply=Utilizar observe.storage.action.apply.tip=Utilizar la fuente de datos configuarada -observe.storage.action.canMigrate=Actualización de la base (versión actual %1$s) observe.storage.action.cancel=Cancelar el cambio de la fuente de datos observe.storage.action.cancel.tip=Cancelar el cambio de la fuente de datos observe.storage.activityLongline.coordinate=Coordinadas @@ -1655,10 +1637,6 @@ observe.storage.label.local=Base local observe.storage.label.reference.import.db=Base de importación de referenciales observe.storage.label.remote=Base remota observe.storage.label.server=Servidor remoto -observe.storage.label.synchro.incoming=Base de origen <%1$s> -observe.storage.label.synchro.leftSource=Fuente de la izquierda <%1$s> -observe.storage.label.synchro.referentiel=Base central <%1$s> -observe.storage.label.synchro.rightSource=Fuente de la derecha <%1$s> observe.storage.locale.db=(local) observe.storage.message.closed=La conexión [%1$s] ha sido cerrada observe.storage.message.closing=Cierre de la conexión [%1$s] @@ -1679,6 +1657,8 @@ observe.storage.no.remote.storage=No hay base de referencia definida observe.storage.no.server.storage=No hay servidor de referencia definido observe.storage.noImportData.config=< No hay configuración > observe.storage.noImportReferentiel.config=Sin configuración +observe.storage.remote.configuration.name=nom de la configuration \#TODO +observe.storage.remote.configuration.save.title=Enregistrement de la configuration \#TODO observe.storage.remote.db=(remoto) observe.storage.remote.login=Login observe.storage.remote.password=Contraseña @@ -1706,8 +1686,6 @@ observe.storage.showMigrationSql=Mostrar las consultas sql de las actualizacione observe.storage.step.creationMode=Creación de la base local observe.storage.step.dbMode.detail=Tipo de fuente de datos observe.storage.step.label=Etapa %1$d/%2$d \: %3$s -observe.storage.store.remote.config=Mantener la configuración -observe.storage.store.remote.config.tip=Mantener los parámetros de configuración de la fuente de datos remota (excepto la contraseña por motivos de seguridad) observe.storage.title.change=Cambiar la fuente de datos observe.storage.useRemoteStorage.config=Configurar la base remota a usar observe.storage.useRemoteStorage.description=Configure la conexión a la base remota\nAntes de continuar, debe validar la conexión. diff --git a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties index e5b2f4a..c2a561a 100644 --- a/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties +++ b/application-swing/src/main/resources/i18n/application-swing_fr_FR.properties @@ -17,7 +17,6 @@ observe.action.auto.copy.to.clipboard.tip=Mettre à jour automatiquement le cont observe.action.back.to.list=Retour à la liste observe.action.back.to.list.tip=Retour à la liste des données observe.action.cancel=Annuler -observe.action.cancel.create.tip=Annuler la création de l'objet observe.action.change.storage=Changer la source de données observe.action.change.storage.tip=Pour changer la source de données de l'application observe.action.choose.db.dump=Choisir la sauvegarde @@ -59,9 +58,6 @@ observe.action.copy.row.headers=Copier les entêtes de ligne observe.action.copy.row.headers.tip=Ajoute dans le résultat les entêtes de ligne (i.e la première colonne) observe.action.copy.to.clipBoard=Copier le contenu dans le presse-papier observe.action.create=Créer -observe.action.db.locale.es.tip=Changer la langue du référentiel en espagnol -observe.action.db.locale.fr.tip=Changer la langue du référentiel en français -observe.action.db.locale.uk.tip=Changer la langue du référentiel en anglais observe.action.delete=Supprimer observe.action.delete.activity.tip=Supprimer l'activité observe.action.delete.entry.tip=Supprimer l'entrée en cours d'édition @@ -99,7 +95,6 @@ observe.action.modify=Modifier observe.action.new.entry=Nouveau observe.action.new.entry.tip=Créer une nouvelle entrée observe.action.open.screen=Ouverture de l'écran <%1$s> -observe.action.quitHelp.tip=Quitter l'écran d'aide observe.action.reload.application=Redémarrer l'application observe.action.reload.storage=Recharger la source de données observe.action.reload.storage.tip=Ferme et réouvre la source de données @@ -432,7 +427,6 @@ observe.common.length=Longueur hors tout observe.common.length.computed.tip=La longueur a été calculée observe.common.length.inf=Longueur (cm inf.) observe.common.length.observed.tip=La longueur a été observée -observe.common.lengthMeasureType=Type de mensuration observe.common.lengthWeightFormula=Relation Poids observe.common.libelles=Libellés observe.common.longitude=Longitude @@ -447,7 +441,6 @@ observe.common.meanValues=Valeurs moyennes observe.common.meanWeight=Poids moyen (en Kg) observe.common.meanWeightComputed.computed.tip=Le poids moyen a été calculé (%s) observe.common.meanWeightComputed.observed.tip=Le poids moyen a été observé -observe.common.measureType=Type de mensuration observe.common.minLength=Taile minimum (en cm) observe.common.minLengthMax=Taille min-max (en cm) observe.common.minWeight=Poids minimum (en Kg) @@ -564,8 +557,6 @@ observe.config.category.technical=Technique observe.config.category.technical.description=Informations techniques observe.config.category.ui=Interface graphiques observe.config.category.ui.description=Configuration des interfaces graphiques -observe.content.action.activity=Créer une nouvelle activité -observe.content.action.activity.tip=Créer une nouvelle activité pour la route courante observe.content.action.closeAndCreate=Clôturer et créer observe.content.action.closeAndCreate.activity=Activité suivante observe.content.action.closeAndCreate.activity.tip=Clôturer l'activite courante et en créer une nouvelle @@ -601,14 +592,6 @@ observe.content.action.goto.open.activity=Accéder à l'activité ouverte observe.content.action.goto.open.activity.short=Activité ouverte observe.content.action.goto.open.activity.tip=Accéder à l'activité ouverte observe.content.action.goto.open.maree=Accéder à la marée ouverte -observe.content.action.goto.open.other.activityLongline=Accéder à l'activité ouverte dans une autre marée -observe.content.action.goto.open.other.activityLongline.tip=Accéder à l'activité ouverte dans une autre marée -observe.content.action.goto.open.other.activitySeine=Accéder à l'activité ouverte dans une autre marée -observe.content.action.goto.open.other.activitySeine.tip=Accéder à l'activité ouverte dans une autre marée -observe.content.action.goto.open.other.maree=Accéder à la marée ouverte dans un autre programme -observe.content.action.goto.open.other.maree.tip=Accéder à la marée ouverte (dans un autre programme) -observe.content.action.goto.open.other.route=Accéder à la route ouverte dans une autre marée -observe.content.action.goto.open.other.route.tip=Accéder à la route ouverte (dans une autre marée) observe.content.action.goto.open.program.short=Programme ouvert observe.content.action.goto.open.program.tip=Accéder au programme ouvert observe.content.action.goto.open.route=Accéder à la route ouverte @@ -1576,7 +1559,6 @@ observe.selection.no.trips.selected=Aucune marée sélectionnée. observe.selection.selected.trips=%s marée(s) sélectionnée(s). observe.storage.action.apply=Utiliser observe.storage.action.apply.tip=Utiliser la source de données configurée -observe.storage.action.canMigrate=Mettre à jour la base (version courante %1$s) observe.storage.action.cancel=Annuler le changement de source de données observe.storage.action.cancel.tip=Annuler le changement de source de données observe.storage.activityLongline.coordinate=Coordonnées @@ -1655,10 +1637,6 @@ observe.storage.label.local=Base locale observe.storage.label.reference.import.db=Base d'import de référentiels observe.storage.label.remote=Base distante observe.storage.label.server=Serveur Distant -observe.storage.label.synchro.incoming=Base source <%1$s> -observe.storage.label.synchro.leftSource=Base de gauche <%1$s> -observe.storage.label.synchro.referentiel=Base centrale <%1$s> -observe.storage.label.synchro.rightSource=Base de droite <%1$s> observe.storage.locale.db=(locale) observe.storage.message.closed=La connexion [%1$s] est fermé observe.storage.message.closing=Fermeture de la connexion [%1$s] @@ -1679,6 +1657,8 @@ observe.storage.no.remote.storage=Aucune base de référence définie observe.storage.no.server.storage=Aucun serveur de référence défini observe.storage.noImportData.config=< Pas de configuration > observe.storage.noImportReferentiel.config=< Pas de configuration > +observe.storage.remote.configuration.name=nom de la configuration +observe.storage.remote.configuration.save.title=Enregistrement de la configuration observe.storage.remote.db=(distante) observe.storage.remote.login=Utilisateur observe.storage.remote.password=Mot de passe @@ -1706,8 +1686,6 @@ observe.storage.showMigrationSql=Afficher les requêtes sql lors des mises à jo observe.storage.step.creationMode=Création base locale observe.storage.step.dbMode.detail=Type de source de données observe.storage.step.label=Etape %1$d/%2$d \: %3$s -observe.storage.store.remote.config=Conserver le paramétrage -observe.storage.store.remote.config.tip=Conserver le paramétrage de la source de données distante dans votre configuration (sauf les mots de passe pour des raisons de sécurité) observe.storage.title.change=Changer la source de données observe.storage.useRemoteStorage.config=Configurer la base distante à utiliser observe.storage.useRemoteStorage.description=Veuillez configurer votre connexion à la base distante\nAvant de pouvoir poursuivre, vous devez valider la connexion. -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 b06682310aadda51227cffe887fbf01717926f6f Merge: 3a968fa 3684d56 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Dec 18 12:39:00 2016 +0100 Assistant de connexion (Fixes #8555) Merge branch 'feature/8555' into develop .../src/main/config/ObserveSwingApplication.ini | 53 ++--------- .../ObserveSwingApplicationConfig.java | 46 +++++++++- .../RemoteDataSourceConfiguration.java | 56 +++++++++++ .../ServerDataSourceConfiguration.java | 56 +++++++++++ ...pplication-swing-configuration_en_GB.properties | 10 +- ...pplication-swing-configuration_es_ES.properties | 10 +- ...pplication-swing-configuration_fr_FR.properties | 10 +- .../ObserveSwingApplicationDataSourcesManager.java | 16 ++-- .../application/swing/ui/MnemonicHelper.java | 1 - .../swing/ui/actions/AbstractUIAction.java | 8 +- .../swing/ui/actions/content/GoDownUIAction.java | 3 +- .../swing/ui/actions/content/GoUpUIAction.java | 8 +- .../ui/actions/menu/config/ShowConfigAction.java | 8 -- .../SaveCurrentRemoteConfigurationUIAction.java | 100 ++++++++++++++++++++ .../SaveCurrentServerConfigurationUIAction.java | 102 +++++++++++++++++++++ .../storage/UseRemoteConfigurationUIAction.java | 60 ++++++++++++ .../storage/UseServerConfigurationUIAction.java | 62 +++++++++++++ .../swing/ui/storage/StorageUIHandler.java | 43 --------- .../swing/ui/storage/StorageUIModel.java | 14 --- .../swing/ui/storage/tabs/ConfigUI.jaxx | 53 ++++++----- .../swing/ui/storage/tabs/ConfigUI.jcss | 36 +++++++- .../swing/ui/storage/tabs/ConfigUIHandler.java | 82 ++++++++++++++--- .../nodes/NavigationTreeNodeSupport.java | 3 +- .../i18n/application-swing_en_GB.properties | 30 ++---- .../i18n/application-swing_es_ES.properties | 30 ++---- .../i18n/application-swing_fr_FR.properties | 30 ++---- pom.xml | 2 +- 27 files changed, 658 insertions(+), 274 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm