r910 - in trunk/tutti-ui-swing/src/main: assembly/full java/fr/ifremer/tutti/ui/swing java/fr/ifremer/tutti/ui/swing/content/db resources/i18n
Author: tchemit Date: 2013-05-02 12:00:47 +0200 (Thu, 02 May 2013) New Revision: 910 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/910 Log: refs #2369: [IMP/EXP] - L'export de base avec suppression ne fonctionne pas Removed: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java Modified: trunk/tutti-ui-swing/src/main/assembly/full/tutti.bat trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.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/assembly/full/tutti.bat =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/full/tutti.bat 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/assembly/full/tutti.bat 2013-05-02 10:00:47 UTC (rev 910) @@ -20,5 +20,21 @@ copy tutti.config tutti call tutti\launch.bat --option tutti.launch.mode full --option tutti.basedir %TUTTI_BASEDIR% if errorlevel 88 goto start +if errorlevel 89 goto deletedb +goto quit + +:deletedb +echo "Clean database and restart" + +del /S/Q data\db +del /S/Q data\dbcache +del /S/Q data\dbconf +rmdir data\db +rmdir data\dbcache +rmdir data\dbconf + +goto start + +:quit cd %OLDDIR% Modified: trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-05-02 10:00:47 UTC (rev 910) @@ -22,6 +22,14 @@ ./tutti/launch.sh --option tutti.launch.mode full --option tutti.basedir $TUTTI_BASEDIR exitcode=$? + if [ "$exitcode" -eq "89" ]; then + # delete db directory and restart + rm -rfv data/db + rm -rfv data/dbcache + rm -rfv data/dbconf + exitcode=88 + fi + if [ ! "$exitcode" -eq "88" ]; then # quit now! exit $exitcode Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-05-02 10:00:47 UTC (rev 910) @@ -54,6 +54,8 @@ /** Logger. */ private static final Log log = LogFactory.getLog(RunTutti.class); + public static final int DELETE_DB_EXIT_CODE = 89; + public static final int UPATE_EXIT_CODE = 88; public static final int NORMAL_EXIT_CODE = 0; Deleted: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/CloseDbAction.java 2013-05-02 10:00:47 UTC (rev 910) @@ -1,87 +0,0 @@ -package fr.ifremer.tutti.ui.swing.content.db; - -/* - * #%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 fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig; -import fr.ifremer.tutti.ui.swing.TuttiScreen; -import fr.ifremer.tutti.ui.swing.content.AbstractChangeScreenAction; -import fr.ifremer.tutti.ui.swing.content.MainUIHandler; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import static org.nuiton.i18n.I18n._; - -/** - * To close db attached to Tutti. - * - * @author tchemit <chemit@codelutin.com> - * @since 1.0 - */ -public class CloseDbAction extends AbstractChangeScreenAction { - - /** Logger. */ - private static final Log log = LogFactory.getLog(CloseDbAction.class); - - public CloseDbAction(MainUIHandler handler) { - super(handler, true, TuttiScreen.MANAGE_DB); - } - - String jdbcUrl; - - @Override - protected void doAction() { - - if (log.isInfoEnabled()) { - log.info("Will close db..."); - } - - jdbcUrl = TuttiPersistenceConfig.getInstance().getJdbcUrl(); - - // clear all caches - getContext().getPersistenceService().clearAllCaches(); - - // set to not reload a real db - getContext().setDbLoaded(false); - - // close services + repon a fake persistence service - getHandler().reloadPersistenceService(); - - // clean db context - getContext().clearDbContext(); - -// TuttiIOUtil.deleteDirectory( -// getConfig().getServiceConfig().getPersistenceConfig().getCacheDirectory(), -// _("tutti.dbManager.action.closeDb.deleteCache.error")); - } - - @Override - public void postSuccessAction() { - - sendMessage(_("tutti.flash.info.db.closed", jdbcUrl)); - - // make sure title is reloaded - getUI().getHandler().changeTitle(); - } -} \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.css 2013-05-02 10:00:47 UTC (rev 910) @@ -58,16 +58,6 @@ visible: {model.isDbExist()}; } -#openDbButton { - actionIcon: open-db; - text: "tutti.dbManager.action.openDb"; - i18nMnemonic: "tutti.dbManager.action.openDb.mnemonic"; - enabled: {!model.isDbLoaded()}; - _tuttiAction: {OpenDbAction.class}; - toolTipText: "tutti.dbManager.action.openDb.tip"; - _help: {"tutti.dbManager.action.openDb.help"}; -} - #upgradeDbButton { actionIcon: update-referential; text: "tutti.dbManager.action.upgradeDb"; @@ -78,16 +68,6 @@ _help: {"tutti.dbManager.action.upgradeDb.help"}; } -#closeDbButton { - actionIcon: close-db; - text: "tutti.dbManager.action.closeDb"; - i18nMnemonic: "tutti.dbManager.action.closeDb.mnemonic"; - enabled: {model.isDbLoaded()}; - _tuttiAction: {CloseDbAction.class}; - toolTipText: "tutti.dbManager.action.closeDb.tip"; - _help: {"tutti.dbManager.action.closeDb.help"}; -} - #exportDbButton { actionIcon: export-db; text: "tutti.dbManager.action.exportDb"; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUI.jaxx 2013-05-02 10:00:47 UTC (rev 910) @@ -65,11 +65,9 @@ </JPanel> <JPanel id='withDbActions' constraints='BorderLayout.SOUTH' layout='{new GridLayout(0, 1)}'> - <JButton id='openDbButton'/> <JButton id='upgradeDbButton'/> <JButton id='exportDbButton'/> <JButton id='exportAndCleanDbButton'/> - <JButton id='closeDbButton'/> </JPanel> </JPanel> </JPanel> \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/DbManagerUIHandler.java 2013-05-02 10:00:47 UTC (rev 910) @@ -27,8 +27,6 @@ import fr.ifremer.tutti.ui.swing.TuttiUIContext; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler; import jaxx.runtime.validator.swing.SwingValidator; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import javax.swing.JComponent; import javax.swing.SwingUtilities; @@ -41,10 +39,6 @@ */ public class DbManagerUIHandler extends AbstractTuttiUIHandler<TuttiUIContext, DbManagerUI> { - /** Logger. */ - private static final Log log = - LogFactory.getLog(DbManagerUIHandler.class); - public DbManagerUIHandler(TuttiUIContext context, DbManagerUI ui) { super(context, ui); } @@ -83,8 +77,6 @@ initUI(ui); - ui.applyDataBinding(DbManagerUI.BINDING_OPEN_DB_BUTTON_ENABLED); -// ui.applyDataBinding(DbManagerUI.BINDING_USE_EXTERNAL_DB_BUTTON_ENABLED); ui.applyDataBinding(DbManagerUI.BINDING_UPGRADE_DB_BUTTON_ENABLED); ui.applyDataBinding(DbManagerUI.BINDING_EXPORT_DB_BUTTON_ENABLED); ui.applyDataBinding(DbManagerUI.BINDING_EXPORT_AND_CLEAN_DB_BUTTON_ENABLED); Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java 2013-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/db/ExportAndCleanDbAction.java 2013-05-02 10:00:47 UTC (rev 910) @@ -27,12 +27,10 @@ import com.google.common.base.Preconditions; import fr.ifremer.tutti.TuttiIOUtil; import fr.ifremer.tutti.persistence.ProgressionModel; -import fr.ifremer.tutti.persistence.config.TuttiPersistenceConfig; -import fr.ifremer.tutti.service.PersistenceService; +import fr.ifremer.tutti.ui.swing.RunTutti; import fr.ifremer.tutti.ui.swing.content.AbstractMainUITuttiAction; import fr.ifremer.tutti.ui.swing.content.MainUIHandler; import fr.ifremer.tutti.ui.swing.util.TuttiUIUtil; -import fr.ifremer.tutti.ui.swing.util.action.TuttiActionHelper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -111,36 +109,32 @@ progressionModel.setMessage(_("tutti.exportDb.closeDb")); - TuttiActionHelper.runInternalAction(getHandler(), CloseDbAction.class); + // clear all caches + getContext().getPersistenceService().clearAllCaches(); - PersistenceService persistenceService = - getContext().getPersistenceService(); + // set to not reload a real db + getContext().setDbLoaded(false); + // close services + repon a fake persistence service + getHandler().reloadPersistenceService(); + + // clean db context + getContext().clearDbContext(); + // export db progressionModel.increments(1); progressionModel.setMessage(_("tutti.exportDb.createArchive", file)); - persistenceService.exportDb(file); + getContext().getPersistenceService().exportDb(file); // clean files progressionModel.increments(1); - progressionModel.setMessage(_("tutti.exportDb.deleteFiles")); + progressionModel.setMessage(_("tutti.exportDb.reloadApplication")); - TuttiPersistenceConfig persistenceConfig = - getConfig().getServiceConfig().getPersistenceConfig(); - - File dbDirectory = persistenceConfig.getDbDirectory(); - TuttiIOUtil.cleanDirectory(dbDirectory, _("tutti.io.directory.delete.error", dbDirectory)); - - File attachmentDirectory = persistenceConfig.getDbAttachmentDirectory(); - TuttiIOUtil.cleanDirectory(attachmentDirectory, _("tutti.io.directory.delete.error", attachmentDirectory)); - -// File protocolDirectory = persistenceConfig.getProtocolDirectory(); -// TuttiIOUtil.cleanDirectory(protocolDirectory, _("tutti.io.directory.delete.error", protocolDirectory)); - - getModel().setDbExist(false); + // Close the application, will exit and restart application + RunTutti.closeTutti(getHandler(), RunTutti.DELETE_DB_EXIT_CODE); } @Override 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-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2013-05-02 10:00:47 UTC (rev 910) @@ -851,6 +851,7 @@ tutti.exportDb.createArchive= tutti.exportDb.deleteFiles= tutti.exportDb.openDb= +tutti.exportDb.reloadApplication= tutti.exportProgram.action.success= tutti.exportProtocol.action.success= tutti.fishingOperations.action.newFishingOperation.mnemonic= 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-05-02 09:23:28 UTC (rev 909) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-05-02 10:00:47 UTC (rev 910) @@ -820,8 +820,8 @@ tutti.exportCruiseForSumatra.title.choose.exportFile=Exporter les captures de la campagne tutti.exportDb.closeDb=Fermeture de la base courante tutti.exportDb.createArchive=Création de l'archive %s -tutti.exportDb.deleteFiles=Suppression des fichiers dans Tutti tutti.exportDb.openDb=Réouverture de la base courante +tutti.exportDb.reloadApplication=Redémarrage de l'application tutti.exportProgram.action.success=La série de campagne <strong>%s</strong> a été exportée dans le fichier <strong>%s</strong>. tutti.exportProtocol.action.success=Protocole [%1s] exporté dans le fichier <strong>%2s</strong>. tutti.fishingOperations.action.newFishingOperation.mnemonic=N
participants (1)
-
tchemit@users.forge.codelutin.com