Author: tchemit Date: 2013-03-15 13:25:00 +0100 (Fri, 15 Mar 2013) New Revision: 633 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/633 Log: - add gotoPreviousScreen action (used by config screen) - fixes #2135: [TECH] - Fichier de configuration de base obsol?\195?\168te lors d'une installation (ou mise ?\195?\160 jour) Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/GoToPreviousScreenAction.java Modified: trunk/tutti-ui-swing/src/main/help/fr/config.html 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/TuttiUIContext.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.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/help/fr/config.html =================================================================== --- trunk/tutti-ui-swing/src/main/help/fr/config.html 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/help/fr/config.html 2013-03-15 12:25:00 UTC (rev 633) @@ -1,3 +1,26 @@ +<!-- + #%L + Tutti :: UI + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 - 2013 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% + --> <!DOCTYPE html> <html lang="fr"> Property changes on: trunk/tutti-ui-swing/src/main/help/fr/config.html ___________________________________________________________________ Modified: svn:keywords - Author Date Id Revision + Author Date Id Revision HeadURL 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 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiApplicationUpdaterCallBack.java 2013-03-15 12:25:00 UTC (rev 633) @@ -324,6 +324,17 @@ "A db update was downloaded (oldVersion: %s, newVersion: %s), will process it.", info.oldVersion, info.newVersion)); } + + // before install or update, regenerate db configuration files + + TuttiPersistenceConfig persistenceConfig = + context.getConfig().getServiceConfig().getPersistenceConfig(); + + context.showInformationMessage( + "Regénérer les fichiers de configuration de la base"); + + persistenceConfig.generateExternalDbFiles(true); + if (Version.VZERO.toString().equals(info.oldVersion)) { // first database, just copy it to correct directory 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 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/TuttiUIContext.java 2013-03-15 12:25:00 UTC (rev 633) @@ -477,13 +477,8 @@ } })); - try { - config.getServiceConfig().getPersistenceConfig().initConfig(getResourceLoader()); - } catch (IOException e) { + config.getServiceConfig().getPersistenceConfig().initConfig(getResourceLoader()); - throw new RuntimeException("Could not init persistence configuration", e); - } - //--------------------------------------------------------------------// // init i18n //--------------------------------------------------------------------// Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/config/TuttiApplicationConfigOption.java 2013-03-15 12:25:00 UTC (rev 633) @@ -55,14 +55,18 @@ "tutti.i18n.directory", n_("tutti.config.option.i18n.directory.description"), "${tutti.basedir}/i18n", - File.class + File.class, + false, + true ), TUTTI_HELP_DIRECTORY( "tutti.help.directory", n_("tutti.config.option.help.directory.description"), "${tutti.basedir}/help", - File.class + File.class, + false, + true ), TUTTI_I18N_LOCALE( @@ -87,14 +91,14 @@ ), TOTAL_SORTED_WEIGHTS_DIFFERENCE_RATE( - "tutti.config.option.weights.rate.difference.totalAndSorted", + "tutti.db.weights.rate.difference.totalAndSorted", n_("tutti.config.option.weights.rate.difference.totalAndSorted.description"), "1.0", Float.class ), TREMIE_CAROUSSEL_VESSEL_ID( - "tutti.config.option.tremieCarousselVessel", + "tutti.tremieCarousselVessel", n_("tutti.config.option.tremieCarousselVessel.description"), "", String.class @@ -122,7 +126,7 @@ ), SAMPLING_CATEGORY_ORDER_IDS( - "tutti.config.option.samplingCategoryOrderIds", + "tutti.samplingCategoryOrderIds", n_("tutti.config.option.samplingCategoryOrderIds.description"), "198,196,174,1430", Integer[].class Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/AbstractChangeScreenAction.java 2013-03-15 12:25:00 UTC (rev 633) @@ -1,4 +1,3 @@ - package fr.ifremer.tutti.ui.swing.content; /* @@ -27,6 +26,8 @@ import fr.ifremer.tutti.ui.swing.TuttiScreen; import fr.ifremer.tutti.ui.swing.TuttiUIContext; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.context.JAXXContextEntryDef; /** * Action to change the screen. @@ -41,6 +42,14 @@ public abstract class AbstractChangeScreenAction extends AbstractMainUITuttiAction { /** + * Context entry to keep previous screen. + * + * @since 1.1 + */ + protected static final JAXXContextEntryDef<TuttiScreen> PREVIOUS_SCREEN = + SwingUtil.newContextEntryDef("previousScreen", TuttiScreen.class); + + /** * Screen where to go. * * @since 1.0 @@ -75,13 +84,18 @@ @Override protected void doAction() throws Exception { - sendMessage(""); - TuttiUIContext context = getContext(); Exception error = null; try { + TuttiScreen previousScreen = context.getScreen(); + if (previousScreen == null) { + PREVIOUS_SCREEN.removeContextValue(getUI()); + } else { + PREVIOUS_SCREEN.setContextValue(getUI(), previousScreen); + } + // clean current screen context.setScreen(null); Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/GoToPreviousScreenAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/GoToPreviousScreenAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/GoToPreviousScreenAction.java 2013-03-15 12:25:00 UTC (rev 633) @@ -0,0 +1,44 @@ +package fr.ifremer.tutti.ui.swing.content; + +/* + * #%L + * Tutti :: UI + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2012 - 2013 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 static org.nuiton.i18n.I18n._; + +/** + * To return on previous screen. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.1 + */ +public class GoToPreviousScreenAction extends AbstractChangeScreenAction { + + public GoToPreviousScreenAction(MainUIHandler handler) { + super(handler, + true, + PREVIOUS_SCREEN.getContextValue(handler.getUI()) + ); + setActionDescription(_("tutti.main.action.goto.previousScreen.tip")); + } +} Property changes on: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/GoToPreviousScreenAction.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/config/TuttiConfigUIHandler.java 2013-03-15 12:25:00 UTC (rev 633) @@ -24,10 +24,12 @@ * #L% */ +import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfigOption; import fr.ifremer.tutti.service.config.TuttiServiceConfigOption; import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfig; import fr.ifremer.tutti.ui.swing.config.TuttiApplicationConfigOption; +import fr.ifremer.tutti.ui.swing.content.GoToPreviousScreenAction; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import fr.ifremer.tutti.ui.swing.content.ReloadTuttiAction; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; @@ -123,10 +125,8 @@ helper.addCategory(n_("tutti.config.category.applications"), n_("tutti.config.category.applications.description"), - CALLBACK_UI) - .addOption(TuttiServiceConfigOption.DATA_DIRECTORY) - .addOption(TuttiServiceConfigOption.SITE_URL) - .addOption(TuttiApplicationConfigOption.TUTTI_HELP_DIRECTORY) + CALLBACK_APPLICATION) + .addOption(TuttiServiceConfigOption.CSV_SEPARATOR) .addOption(TuttiApplicationConfigOption.UI_CONFIG_FILE) .addOption(TuttiApplicationConfigOption.TOTAL_SORTED_WEIGHTS_DIFFERENCE_RATE); @@ -161,19 +161,39 @@ // SHORTCUT - helper.addCategory(n_("tutti.config.category.shortcuts"), + /*helper.addCategory(n_("tutti.config.category.shortcuts"), n_("tutti.config.category.shortcuts.description"), CALLBACK_SHORTCUT) .addOption(TuttiApplicationConfigOption.SHORTCUT_CLOSE_POPUP); + */ + helper.addCategory(n_("tutti.config.category.technical"), + n_("tutti.config.category.technical.description")) + .addOption(TuttiServiceConfigOption.BASEDIR) + .addOption(TuttiServiceConfigOption.DATA_DIRECTORY) + .addOption(TuttiServiceConfigOption.TMP_DIRECTORY) + .addOption(TuttiApplicationConfigOption.TUTTI_I18N_DIRECTORY) + .addOption(TuttiApplicationConfigOption.TUTTI_HELP_DIRECTORY) + .addOption(TuttiPersistenceConfigOption.DB_DIRECTORY) + .addOption(TuttiPersistenceConfigOption.DB_ATTACHMENT_DIRECTORY) + .addOption(TuttiPersistenceConfigOption.DB_PROTOCOL_DIRECTORY) + .addOption(TuttiPersistenceConfigOption.DB_CACHE_DIRECTORY) + .addOption(TuttiPersistenceConfigOption.DB_CONFIGURATION_PATH) + .addOption(TuttiPersistenceConfigOption.DB_ENUMERATION_PATH) + .addOption(TuttiPersistenceConfigOption.JDBC_URL) + .addOption(TuttiServiceConfigOption.SITE_URL) + .addOption(TuttiApplicationConfigOption.TUTTI_UPDATE_URL); + helper.setFinalizer(new MainCallBackFinalizer(CALLBACK_APPLICATION)); helper.setCloseAction(new Runnable() { @Override public void run() { - doAction(getContext().getMainUI().getMenuActionSelectCruise(), - null); + TuttiUIAction<GoToPreviousScreenAction> action = + getContext().getMainUI().getHandler().createUIAction( + null, GoToPreviousScreenAction.class); + action.actionPerformed(null); } }); ConfigUI configUI = helper.buildUI( Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/util/action/TuttiUIAction.java 2013-03-15 12:25:00 UTC (rev 633) @@ -81,6 +81,9 @@ A action = getLogicAction(); + // reset status message + action.sendMessage(""); + try { doAction = action.prepareAction(); } catch (Exception e) { 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 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-03-15 12:25:00 UTC (rev 633) @@ -51,8 +51,12 @@ tutti.config.application= tutti.config.category.applications= tutti.config.category.applications.description= +tutti.config.category.directories= +tutti.config.category.directories.description= tutti.config.category.shortcuts= tutti.config.category.shortcuts.description= +tutti.config.category.technical= +tutti.config.category.technical.description= tutti.config.category.ui= tutti.config.category.ui.description= tutti.config.option.cruiseId.description= @@ -560,6 +564,7 @@ tutti.main.action.editSelectedProtocol.tip= tutti.main.action.exit= tutti.main.action.exit.tip= +tutti.main.action.goto.previousScreen.tip= tutti.main.action.importTemporaryReferential= tutti.main.action.importTemporaryReferential.tip= tutti.main.action.manageDb= 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 2013-03-15 11:13:13 UTC (rev 632) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-03-15 12:25:00 UTC (rev 633) @@ -51,6 +51,8 @@ tutti.config.category.applications.description=Application tutti.config.category.shortcuts=Raccourcis tutti.config.category.shortcuts.description=Liste des raccourcis clavier +tutti.config.category.technical=Technique +tutti.config.category.technical.description=Informations techniques tutti.config.category.ui=Interface utilisateur tutti.config.category.ui.description=Options de l'interface utilisateur tutti.config.option.cruiseId.description=Identifiant de la dernière campagne utilisée @@ -561,6 +563,7 @@ tutti.main.action.editSelectedProtocol.tip=Éditer le protocole sélectionné tutti.main.action.exit=Quitter tutti.main.action.exit.tip=Quitter l'application +tutti.main.action.goto.previousScreen.tip=Retour à l'écran précédent tutti.main.action.importTemporaryReferential=Référentiels temporaires tutti.main.action.importTemporaryReferential.tip=Importer des référentiels temporaires tutti.main.action.manageDb=Gestionnaire de base