r1530 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/action java/fr/ifremer/tutti/ui/swing/util java/fr/ifremer/tutti/ui/swing/util/auth resources/i18n resources/icons
Author: tchemit Date: 2014-01-29 03:42:24 +0100 (Wed, 29 Jan 2014) New Revision: 1530 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1530 Log: fixes #4257: Ajout de message d'erreur si une mise ?\195?\160 jour ne se d?\195?\169roule pas bien refs #4130: [TECH] S?\195?\169curiser les acc?\195?\168s au site de donn?\195?\169es Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/AuthenticationInfo.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUIHandler.java trunk/tutti-ui-swing/src/main/resources/icons/action-info.png Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiReportUpdaterCallBack.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -28,6 +28,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import fr.ifremer.shared.application.ApplicationIOUtil; +import fr.ifremer.shared.application.ApplicationTechnicalException; import fr.ifremer.shared.application.swing.action.ApplicationActionException; import fr.ifremer.tutti.LabelAware; import fr.ifremer.tutti.TuttiConfiguration; @@ -163,9 +164,8 @@ if (error != null) { // something bad while updating jre - if (log.isErrorEnabled()) { - log.error("Could not update jre", error); - } + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(_("tutti.applicationUpdater.jre.error"), error)); } else { ApplicationInfo info = getInfo(UpdateType.JRE, appToUpdate); if (info != null) { @@ -188,9 +188,8 @@ if (error != null) { // something bad while updating application - if (log.isErrorEnabled()) { - log.error("Could not update tutti", error); - } + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(_("tutti.applicationUpdater.tutti.error"), error)); } else { ApplicationInfo info = getInfo(UpdateType.TUTTI, appToUpdate); if (info != null) { @@ -244,9 +243,8 @@ if (error != null) { // something bad while updating i18n - if (log.isErrorEnabled()) { - log.error("Could not update i18n", error); - } + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(_("tutti.applicationUpdater.i18n.error"), error)); } else { ApplicationInfo info = getInfo(UpdateType.I18N, appToUpdate); if (info != null) { @@ -268,10 +266,9 @@ Exception error = getError(UpdateType.HELP, appUpdateError); if (error != null) { - // something bad while updating i18n - if (log.isErrorEnabled()) { - log.error("Could not update help", error); - } + // something bad while updating help + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(_("tutti.applicationUpdater.help.error"), error)); } else { ApplicationInfo info = getInfo(UpdateType.HELP, appToUpdate); if (info != null) { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiDbUpdaterCallBack.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -36,6 +36,7 @@ import fr.ifremer.tutti.service.PersistenceService; import fr.ifremer.tutti.service.referential.TuttiReferentialSynchronizeService; import fr.ifremer.tutti.ui.swing.action.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.util.auth.AuthenticationInfo; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -104,11 +105,11 @@ } else { result.put(info.name, info); - // add auth - info.setAuthentication( - "t" + "u" + "t" + "t" + "i" + "d" + "b", - new char[]{'3', 'R', 'A', 'C', 'e', 'v', '2', 'N', 'w', '8', 'u', 'E', 'D', 'E', 'v', 's', 'y', '0', 'v', 'J'} - ); + // ask auth + AuthenticationInfo authenticationInfo = context.getAuthenticationInfo(info.url); + if (authenticationInfo != null) { + info.setAuthentication(authenticationInfo.getLogin(), authenticationInfo.getPassword()); + } if (context.isDbExist()) { @@ -138,6 +139,7 @@ public void updateDone(Map<String, ApplicationInfo> appToUpdate, Map<String, Exception> appUpdateError) { + ApplicationInfo info = appToUpdate.get(DB_UPDATE_NAME); Exception error = appUpdateError.get(DB_UPDATE_NAME); if (error != null) { @@ -145,33 +147,37 @@ if (log.isErrorEnabled()) { log.error("Could not update db", error); } - throw new ApplicationActionException(action, error); - } else { - ApplicationInfo info = appToUpdate.get(DB_UPDATE_NAME); - if (info != null) { + String errorMessage; + if (info != null && info.needAuthentication) { + errorMessage = _("tutti.updateDb.error.with.auth"); + } else { + errorMessage = _("tutti.updateDb.error.with.noauth"); + } + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(errorMessage, error)); + } else if (info != null) { - if (log.isInfoEnabled()) { - log.info(String.format( - "A db update was downloaded (oldVersion: %s, newVersion: %s), will process it.", - info.oldVersion, info.newVersion)); - } + if (log.isInfoEnabled()) { + log.info(String.format( + "A db update was downloaded (oldVersion: %s, newVersion: %s), will process it.", + info.oldVersion, info.newVersion)); + } - // before install or update, regenerate db configuration files + // before install or update, regenerate db configuration files - TuttiConfiguration configuration = regenerateDbConf(); + TuttiConfiguration configuration = regenerateDbConf(); - configuration.generateExternalDbFiles(true); + configuration.generateExternalDbFiles(true); - if (dbInstalled) { + if (dbInstalled) { - // first database, just copy it to correct directory + // first database, just copy it to correct directory - prepareFirstDatabase(info); - } else if (dbUpdated) { + prepareFirstDatabase(info); + } else if (dbUpdated) { - // launch a referential synchronize operation - synchronizetDatabase(info); - } + // launch a referential synchronize operation + synchronizetDatabase(info); } } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiReportUpdaterCallBack.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiReportUpdaterCallBack.java 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiReportUpdaterCallBack.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -25,9 +25,11 @@ */ import com.google.common.collect.Maps; +import fr.ifremer.shared.application.ApplicationTechnicalException; import fr.ifremer.shared.application.swing.action.ApplicationActionException; import fr.ifremer.tutti.persistence.ProgressionModel; import fr.ifremer.tutti.ui.swing.action.AbstractTuttiAction; +import fr.ifremer.tutti.ui.swing.util.auth.AuthenticationInfo; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.updater.ApplicationInfo; @@ -83,11 +85,11 @@ if (info != null) { result.put(info.name, info); - // add auth - info.setAuthentication( - "t" + "u" + "t" + "t" + "i" + "d" + "b", - new char[]{'3', 'R', 'A', 'C', 'e', 'v', '2', 'N', 'w', '8', 'u', 'E', 'D', 'E', 'v', 's', 'y', '0', 'v', 'J'} - ); + // ask auth + AuthenticationInfo authenticationInfo = context.getAuthenticationInfo(info.url); + if (authenticationInfo != null) { + info.setAuthentication(authenticationInfo.getLogin(), authenticationInfo.getPassword()); + } } return result; @@ -122,24 +124,27 @@ protected boolean updateDoneReport(Map<String, ApplicationInfo> appToUpdate, Map<String, Exception> appUpdateError) { boolean doRestart = false; + ApplicationInfo info = getInfo(REPORT_UPDATE_NAME, appToUpdate); Exception error = getError(REPORT_UPDATE_NAME, appUpdateError); if (error != null) { // something bad while updating jre - if (log.isErrorEnabled()) { - log.error("Could not update report", error); + String errorMessage; + if (info != null && info.needAuthentication) { + errorMessage = _("tutti.updateReport.error.with.auth"); + } else { + errorMessage = _("tutti.updateReport.error.with.noauth"); } - } else { - ApplicationInfo info = getInfo(REPORT_UPDATE_NAME, appToUpdate); - if (info != null) { + throw ApplicationActionException.propagateError( + action, new ApplicationTechnicalException(errorMessage, error)); + } else if (info != null) { - if (log.isInfoEnabled()) { - log.info(String.format( - "A report update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it", - info.oldVersion, info.newVersion)); - } - doRestart = true; + if (log.isInfoEnabled()) { + log.info(String.format( + "A report update was downloaded (oldVersion: %s, newVersion: %s), will restart application to use it", + info.oldVersion, info.newVersion)); } + doRestart = true; } return doRestart; } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -62,6 +62,8 @@ import fr.ifremer.tutti.ui.swing.content.MainUI; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; import fr.ifremer.tutti.ui.swing.util.UIMessageNotifier; +import fr.ifremer.tutti.ui.swing.util.auth.AuthenticationInfo; +import fr.ifremer.tutti.ui.swing.util.auth.LoginUI; import jaxx.runtime.JAXXContext; import jaxx.runtime.swing.editor.bean.BeanDoubleList; import jaxx.runtime.swing.editor.bean.BeanFilterableComboBox; @@ -265,6 +267,8 @@ private final ApplicationActionEngine tuttiActionEngine; + private final Map<String, AuthenticationInfo> updateAuthenticationStore; + public static TuttiUIContext newContext(TuttiConfiguration config) { Preconditions.checkNotNull(config); Preconditions.checkState(applicationContext == null, @@ -340,6 +344,7 @@ addMessageNotifier(logMessageNotifier); tuttiActionFactory = new TuttiActionFactory(); tuttiActionEngine = new ApplicationActionEngine(tuttiActionFactory); + this.updateAuthenticationStore = Maps.newTreeMap(); } @Override @@ -922,6 +927,27 @@ } //------------------------------------------------------------------------// + //-- Authentication methods --// + //------------------------------------------------------------------------// + + public AuthenticationInfo getAuthenticationInfo(String url) { + + // get existing info + AuthenticationInfo authentication = updateAuthenticationStore.get(url); + + // ask user authentication + authentication = new LoginUI(this).open(url, authentication).getAuthenticationInfo(); + + if (authentication != null) { + + // store it back in authentication store + updateAuthenticationStore.put(url, authentication); + } + + return authentication; + } + + //------------------------------------------------------------------------// //-- Other methods --// //------------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportPsionAction.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -1,5 +1,29 @@ package fr.ifremer.tutti.ui.swing.action; +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + import com.google.common.base.Joiner; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.data.CatchBatch; Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/AuthenticationInfo.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/AuthenticationInfo.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/AuthenticationInfo.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -0,0 +1,55 @@ +package fr.ifremer.tutti.ui.swing.util.auth; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import java.io.Serializable; + +/** + * Created on 1/28/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 3.1 + */ +public class AuthenticationInfo implements Serializable { + + private static final long serialVersionUID = 1L; + + protected final String login; + + protected final char[] password; + + public AuthenticationInfo(String login, char[] password) { + this.login = login; + this.password = password; + } + + public String getLogin() { + return login; + } + + public char[] getPassword() { + return password; + } +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/AuthenticationInfo.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.css (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.css 2014-01-29 02:42:24 UTC (rev 1530) @@ -0,0 +1,56 @@ +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +#loginDialog { + modal: true; + title: "tutti.login.title"; +} + +#infoMessage { + actionIcon: info; +} + +#loginLabel { + text: "tutti.login.field.login"; + labelFor: {loginField}; +} + +#passwordLabel { + text: "tutti.login.field.password"; + labelFor: {passwordField}; +} + +#cancelButton { + actionIcon: cancel; + text: "tutti.common.cancel"; + toolTipText: "tutti.common.cancel"; + i18nMnemonic: "tutti.common.cancel.mnemonic"; +} + +#acceptButton { + actionIcon: accept; + text: "tutti.common.validate"; + toolTipText: "tutti.common.validate"; + i18nMnemonic: "tutti.common.validate.mnemonic"; +} \ No newline at end of file Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.jaxx (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUI.jaxx 2014-01-29 02:42:24 UTC (rev 1530) @@ -0,0 +1,83 @@ +<!-- + #%L + Tutti :: UI + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2012 - 2014 Ifremer + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program. If not, see + <http://www.gnu.org/licenses/gpl-3.0.html>. + #L% + --> +<JDialog id='loginDialog' layout='{new BorderLayout()}'> + + <import> + fr.ifremer.tutti.ui.swing.TuttiUIContext + fr.ifremer.tutti.ui.swing.util.TuttiUIUtil + </import> + + <script><![CDATA[ + +public LoginUI(TuttiUIContext context) { + super(context.getMainUI()); + TuttiUIUtil.setApplicationContext(this, context); +} + +public LoginUI open(String url, AuthenticationInfo authenticationInfo) { + handler.open(url, authenticationInfo); + return this; +} + +public AuthenticationInfo getAuthenticationInfo() { return handler.getAuthenticationInfo(); } + ]]></script> + + <Table id='mainPanel' fill='both'> + + <row> + <cell columns="2"> + <JLabel id='infoMessage'/> + </cell> + </row> + + <row> + <cell> + <JLabel id='loginLabel'/> + </cell> + <cell weightx='1'> + <JTextField id='loginField'/> + </cell> + </row> + + <row> + <cell> + <JLabel id='passwordLabel'/> + </cell> + <cell weightx='1'> + <JPasswordField id='passwordField'/> + </cell> + </row> + + <row> + <cell columns='2'> + <JPanel layout='{new GridLayout(1,0)}'> + <JButton id='cancelButton' onActionPerformed='handler.cancel()'/> + <JButton id='acceptButton' onActionPerformed='handler.accept()'/> + </JPanel> + </cell> + </row> + + </Table> + +</JDialog> \ No newline at end of file Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUIHandler.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUIHandler.java 2014-01-29 02:42:24 UTC (rev 1530) @@ -0,0 +1,91 @@ +package fr.ifremer.tutti.ui.swing.util.auth; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 - 2014 Ifremer + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/gpl-3.0.html>. + * #L% + */ + +import fr.ifremer.tutti.ui.swing.content.MainUI; +import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.spi.UIHandler; + +import static org.nuiton.i18n.I18n._; + +/** + * Created on 1/29/14. + * + * @author Tony Chemit <chemit@codelutin.com> + * @since 3.1 + */ +public class LoginUIHandler implements UIHandler<LoginUI> { + + protected LoginUI ui; + + protected AuthenticationInfo authenticationInfo; + + @Override + public void beforeInit(LoginUI ui) { + this.ui = ui; + } + + @Override + public void afterInit(LoginUI ui) { + } + + public void open(String url, AuthenticationInfo authenticationInfo) { + + ui.getInfoMessage().setText(_("tutti.login.infoMmessage", url)); + ui.getLoginField().setText(authenticationInfo == null ? null : authenticationInfo.getLogin()); + ui.getPasswordField().setText(authenticationInfo == null ? null : new String(authenticationInfo.getPassword())); + ui.pack(); + + MainUI mainUI = TuttiUIUtil.getApplicationContext(ui).getMainUI(); + if (mainUI != null) { + + // we need to wait until the optional action ui is launch + try { + Thread.sleep(1001); + } catch (InterruptedException e) { + //ignore it + } + } + if (mainUI != null) { + SwingUtil.center(mainUI, ui); + } + ui.setVisible(true); + } + + public void cancel() { + ui.dispose(); + } + + public void accept() { + authenticationInfo = new AuthenticationInfo(ui.getLoginField().getText(), + ui.getPasswordField().getPassword()); + ui.dispose(); + } + + protected AuthenticationInfo getAuthenticationInfo() { + return authenticationInfo; + } +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/auth/LoginUIHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-01-29 02:42:24 UTC (rev 1530) @@ -12,6 +12,9 @@ tutti.about.update.title= tutti.addSampleCategoryBenthosBatch.title= tutti.addSampleCategorySpeciesBatch.title= +tutti.applicationUpdater.help.error= +tutti.applicationUpdater.i18n.error= +tutti.applicationUpdater.jre.error= tutti.applicationUpdater.prepareFirstDB.copyDirectory.error= tutti.applicationUpdater.prepareFirstDB.deleteDirectory.error= tutti.applicationUpdater.startUpdate.db.installation= @@ -24,6 +27,7 @@ tutti.applicationUpdater.synchroDB.prepare.error= tutti.applicationUpdater.synchroDB.synchro.error= tutti.applicationUpdater.synchroDB.writeVersion.error= +tutti.applicationUpdater.tutti.error= tutti.applicationUpdater.updateDone.deleteDirectory.caches.error= tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error= tutti.applicationUpdater.updateDone.deleteDirectory.enum.error= @@ -65,6 +69,8 @@ tutti.commentEditor.action.tip= tutti.commentEditor.none.tip= tutti.commentEditor.title= +tutti.common.accept= +tutti.common.accept.mnemonic= tutti.common.askBeforeCloneProtocol.help= tutti.common.askBeforeEditProtocol.help= tutti.common.askBeforeEditProtocol.title= @@ -1203,6 +1209,10 @@ tutti.label.tab.individualObservations= tutti.label.tab.marineLitter= tutti.label.tab.species= +tutti.login.field.login= +tutti.login.field.password= +tutti.login.infoMmessage= +tutti.login.title= tutti.main.action.about= tutti.main.action.about.mnemonic= tutti.main.action.about.tip= @@ -1496,6 +1506,10 @@ tutti.updateApplication.message.success= tutti.updateApplication.noUpdate= tutti.updateApplication.title.success= +tutti.updateDb.error.with.auth= +tutti.updateDb.error.with.noauth= +tutti.updateReport.error.with.auth= +tutti.updateReport.error.with.noauth= tutti.updateReport.message.success= tutti.updateReport.noUpdate= tutti.updateReport.title.success= Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties =================================================================== --- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-28 18:37:06 UTC (rev 1529) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-29 02:42:24 UTC (rev 1530) @@ -12,6 +12,9 @@ tutti.about.update.title=Mise à jour Tutti tutti.addSampleCategoryBenthosBatch.title=Catégorisation du lot (ajout) tutti.addSampleCategorySpeciesBatch.title=Catégorisation du lot (ajout) +tutti.applicationUpdater.help.error=Impossible de télécharger la mise à jour de l'aide.<br/>Si le problème persiste, veuillez consulter l'administrateur. +tutti.applicationUpdater.i18n.error= +tutti.applicationUpdater.jre.error=Impossible de télécharger la mise à jour de l'environnement java.<br/>Si le problème persiste, veuillez consulter l'administrateur. tutti.applicationUpdater.prepareFirstDB.copyDirectory.error=Erreur lors de la copie du contenu du dossier %1s vers %2s tutti.applicationUpdater.prepareFirstDB.deleteDirectory.error=Erreur lors de la suppression du dossier %s tutti.applicationUpdater.startUpdate.db.installation=Téléchargement et installation de la base (version %s) @@ -24,6 +27,7 @@ tutti.applicationUpdater.synchroDB.prepare.error=Erreur lors de la préparation de la synchronisation de la base tutti.applicationUpdater.synchroDB.synchro.error=Erreur lors de la synchronisation de la base tutti.applicationUpdater.synchroDB.writeVersion.error=Erreur lors de l'écriture de la nouvelle version de la base de données dans le fichier %s +tutti.applicationUpdater.tutti.error=Impossible de télécharger la mise à jour de Allegro Campagne.<br/>Si le problème persiste, veuillez consulter l'administrateur. tutti.applicationUpdater.updateDone.deleteDirectory.caches.error=Erreur lors de la suppression du dossier des caches tutti.applicationUpdater.updateDone.deleteDirectory.dbConf.error=Erreur lors de la suppression du dossier de configuration de base de données tutti.applicationUpdater.updateDone.deleteDirectory.enum.error=Erreur lors de la suppression du dossier d'énumération @@ -1196,6 +1200,10 @@ tutti.label.tab.individualObservations=Observations individuelles tutti.label.tab.marineLitter=Macro déchets tutti.label.tab.species=Espèces +tutti.login.field.login=Login +tutti.login.field.password=Mot de passe +tutti.login.infoMmessage=<html><body><p>Une authentification est requise pour accéder à la ressource <br/><strong>%s</strong></p><hr></body></html> +tutti.login.title=Demande d'authentification tutti.main.action.about=À propos tutti.main.action.about.mnemonic=À tutti.main.action.about.tip=À Propos @@ -1489,6 +1497,10 @@ tutti.updateApplication.message.success=La mise à jour du logiciel nécessite le redémarrage de l'application tutti.updateApplication.noUpdate=<strong>Aucune mise à jour de l'application détectée.</strong> tutti.updateApplication.title.success=Redémarrage de l'application nécessaire... +tutti.updateDb.error.with.auth=Impossible de télécharger la base de données.<br/>Le login / mot de passe que vous avez saisis n'étaient peut-être pas corrects.<br/>Si le problème persiste, veuillez consulter l'administrateur. +tutti.updateDb.error.with.noauth=Impossible de télécharger la base de données.<br/>Si le problème persiste, veuillez consulter l'administrateur. +tutti.updateReport.error.with.auth=Impossible de télécharger la mise à jour des rapports.<br/>Le login / mot de passe que vous avez saisis n'étaient peut-être pas corrects.<br/>Si le problème persiste, veuillez consulter l'administrateur. +tutti.updateReport.error.with.noauth=Impossible de télécharger la mise à jour des rapports.<br/>Si le problème persiste, veuillez consulter l'administrateur. tutti.updateReport.message.success=La mise à jour des rapports nécessite le redémarrage de l'application tutti.updateReport.noUpdate=<strong>Aucune mise à jour de rapports détectée.</strong> tutti.updateReport.title.success=Redémarrage de l'application nécessaire... Copied: trunk/tutti-ui-swing/src/main/resources/icons/action-info.png (from rev 1521, trunk/tutti-ui-swing/src/main/resources/icons/info.png) =================================================================== (Binary files differ)
participants (1)
-
tchemit@users.forge.codelutin.com