Author: tchemit Date: 2013-02-06 03:22:30 +0100 (Wed, 06 Feb 2013) New Revision: 344 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/344 Log: - reuse update actions - make works the config (copy it to tutti app at launch) - add missing icon Added: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java trunk/tutti-ui-swing/src/main/resources/icons/action-update-application.png 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/AbstractTuttiAction.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 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/UpdateReferentialAction.java 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-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/assembly/full/tutti.bat 2013-02-06 02:22:30 UTC (rev 344) @@ -11,10 +11,11 @@ :start -copy tutti-app\update.bat . +copy tutti\update.bat . call update.bat del update.bat -call tutti-app\launch.bat --option tutti.launch.mode full --option tutti.application.basedir $REP --option tutti.data.directory $REP/data --option tutti.update.application.url file:///home/tchemit/.tutti/update-tutti.properties +copy tutti.config tutti +call tutti\launch.bat --option tutti.launch.mode full --option tutti.application.basedir $REP --option tutti.data.directory $REP/data --option tutti.update.application.url file:///home/tchemit/.tutti/update-tutti.properties if errorlevel 88 goto start cd %OLDDIR% Modified: trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh =================================================================== --- trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/assembly/full/tutti.sh 2013-02-06 02:22:30 UTC (rev 344) @@ -16,6 +16,7 @@ cp $TUTTI_HOME/update.sh . ./update.sh rm -fv update.sh + cp $REP/tutti.config $TUTTI_HOME ./tutti/launch.sh --option tutti.launch.mode full \ --option tutti.application.basedir $REP \ --option tutti.data.directory $REP/data \ Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/AbstractTuttiAction.java 2013-02-06 02:22:30 UTC (rev 344) @@ -189,7 +189,6 @@ actions.remove(AbstractTuttiAction.this); } } - } } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.css 2013-02-06 02:22:30 UTC (rev 344) @@ -157,6 +157,10 @@ mnemonic: A; } +#menuUpdateApplication { + _tuttiAction: {UpdateApplicationAction.class}; +} + #bottomBar { floatable: false; margin: {new java.awt.Insets(0, 0, 0, 5)}; Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/MainUI.jaxx 2013-02-06 02:22:30 UTC (rev 344) @@ -93,6 +93,7 @@ onActionPerformed='getHandler().gotoSite()'/> <JMenuItem id='menuHelpAbout' onActionPerformed='getHandler().showAbout()'/> + <JMenuItem id='menuUpdateApplication'/> </JMenu> </JMenuBar> 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-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/RunTutti.java 2013-02-06 02:22:30 UTC (rev 344) @@ -28,12 +28,10 @@ import jaxx.runtime.SwingUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.util.ApplicationUpdater; import javax.swing.UIManager; import javax.swing.plaf.BorderUIResource; import java.awt.Color; -import java.io.File; /** * To start Tutti application. @@ -54,7 +52,7 @@ TuttiApplicationConfig config = new TuttiApplicationConfig("tutti.config", args); // Create application context - TuttiUIContext context = TuttiUIContext.newContext(config); + final TuttiUIContext context = TuttiUIContext.newContext(config); // prepare context (mainly init configs, i18n) context.init(); @@ -65,8 +63,13 @@ log.info("Full launch mode, try to update."); } - // try to do some updates - updateTutti(context); + MainUIHandler handler = new MainUIHandler(context, null); + + // try to update jre - i18n - application and exit if so + new UpdateApplicationAction(handler).doAction(null); + + // try to update db + new UpdateReferentialAction(handler).doAction(null); } // Prepare ui look&feel and load ui properties @@ -106,54 +109,4 @@ System.exit(1); } } - - public static void updateTutti(TuttiUIContext context) { - TuttiApplicationConfig config = context.getConfig(); - - - File current = config.getTuttiBasedir(); - if (current == null || !current.exists()) { - - // can not update application - if (log.isWarnEnabled()) { - log.warn("No application base directory defined, skip updates."); - } - } else { - - String url = config.getUpdateUrl(); - File dest = new File(config.getTuttiBasedir(), "NEW"); - - if (log.isInfoEnabled()) { - log.info(String.format("Try to update jre, i18N or tutti (current application location: %s), using update url: %s", current, url)); - } - ApplicationUpdater up = new ApplicationUpdater(); - - TuttiApplicationUpdaterCallBack callback = - new TuttiApplicationUpdaterCallBack(context); - - callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.JRE, - TuttiApplicationUpdaterCallBack.UpdateType.I18N, - TuttiApplicationUpdaterCallBack.UpdateType.TUTTI); - up.update(url, - current, - dest, - false, - callback); - - current = config.getDataDirectory(); - if (log.isInfoEnabled()) { - log.info(String.format("Try to update database (current data direction location: %s), using update url: %s", current, url)); - } - - callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.DB); - up.update(url, - current, - dest, - false, - callback); - - - } - } - } \ No newline at end of file Copied: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java (from rev 343, trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java) =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java (rev 0) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateApplicationAction.java 2013-02-06 02:22:30 UTC (rev 344) @@ -0,0 +1,95 @@ +package fr.ifremer.tutti.ui.swing; + +/* + * #%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.ui.swing.config.TuttiApplicationConfig; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.ApplicationUpdater; + +import java.awt.event.ActionEvent; +import java.io.File; + +import static org.nuiton.i18n.I18n._; + +/** + * To update jre / i18n or tutti using the {@link ApplicationUpdater} mecanism. + * + * @author tchemit <chemit@codelutin.com> + * @since 1.0 + */ +public class UpdateApplicationAction extends AbstractTuttiAction<TuttiUIContext, MainUIHandler> { + + private static final long serialVersionUID = 1L; + + /** Logger. */ + private static final Log log = + LogFactory.getLog(UpdateApplicationAction.class); + + public UpdateApplicationAction(MainUIHandler handler) { + super(handler, + "updateApplication", + "update-application", + _("tutti.action.updateApplication"), + _("tutti.action.updateApplication.tip"), + false); + } + + @Override + protected void doAction(ActionEvent event) { + + TuttiApplicationConfig config = getContext().getConfig(); + + File current = config.getTuttiBasedir(); + if (current == null || !current.exists()) { + + // can not update application + if (log.isWarnEnabled()) { + log.warn("No application base directory defined, skip updates."); + } + } else { + + String url = config.getUpdateUrl(); + File dest = new File(config.getTuttiBasedir(), "NEW"); + + if (log.isInfoEnabled()) { + log.info(String.format("Try to update jre, i18N or tutti (current application location: %s), using update url: %s", current, url)); + } + ApplicationUpdater up = new ApplicationUpdater(); + + TuttiApplicationUpdaterCallBack callback = + new TuttiApplicationUpdaterCallBack(getContext()); + + callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.JRE, + TuttiApplicationUpdaterCallBack.UpdateType.I18N, + TuttiApplicationUpdaterCallBack.UpdateType.TUTTI); + up.update(url, + current, + dest, + false, + callback); + } + } +} \ No newline at end of file Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/UpdateReferentialAction.java 2013-02-06 02:22:30 UTC (rev 344) @@ -35,7 +35,7 @@ import static org.nuiton.i18n.I18n._; /** - * To update + * To update referential using the {@link ApplicationUpdater} mecanism. * * @author tchemit <chemit@codelutin.com> * @since 1.0 @@ -58,22 +58,24 @@ } @Override - protected void doAction(ActionEvent event) throws Exception { + protected void doAction(ActionEvent event) { TuttiApplicationConfig config = getContext().getConfig(); - File current = config.getTuttiBasedir(); + File current = config.getDataDirectory(); String url = config.getUpdateUrl(); if (log.isInfoEnabled()) { - log.info(String.format("Try to update db (current application location: %s), using update url: %s", current, url)); + log.info(String.format("Try to update db (current data location: %s), using update url: %s", current, url)); } ApplicationUpdater up = new ApplicationUpdater(); File dest = new File(config.getTuttiBasedir(), "NEW"); + TuttiApplicationUpdaterCallBack callback = new TuttiApplicationUpdaterCallBack(getContext()); + callback.setTypes(TuttiApplicationUpdaterCallBack.UpdateType.DB); up.update(url, current, dest, false, - new TuttiApplicationUpdaterCallBack(getContext(), TuttiApplicationUpdaterCallBack.UpdateType.DB)); + callback); } } \ No newline at end of file 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-02-06 01:52:42 UTC (rev 343) +++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2013-02-06 02:22:30 UTC (rev 344) @@ -121,8 +121,10 @@ tutti.action.site.tip=Accéder au site du projet Tutti tutti.action.splitSpeciesBatch=Catégoriser le lot tutti.action.splitSpeciesBatch.tip=Catégoriser le lot courant (celui de la ligne sélectionné) -tutti.action.updateReferential=Mettre à jour -tutti.action.updateReferential.tip=Mettre à jour les référentiels +tutti.action.updateApplication=Mise à jour +tutti.action.updateApplication.tip=Mettre à jour l'application si nécessaire +tutti.action.updateReferential=Mise à jour +tutti.action.updateReferential.tip=Mettre à jour les référentiels si nécessaire tutti.action.validate=Valider tutti.action.validateCatches=Valider les captures tutti.action.validateCatches.tip=Valider les captures Added: trunk/tutti-ui-swing/src/main/resources/icons/action-update-application.png =================================================================== (Binary files differ) Property changes on: trunk/tutti-ui-swing/src/main/resources/icons/action-update-application.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: svn:keywords + Author Date Id Revision HeadURL