Author: chatellier Date: 2010-11-05 11:34:21 +0000 (Fri, 05 Nov 2010) New Revision: 172 Log: Add swing session to restore main frame state Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-11-05 10:00:25 UTC (rev 171) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/Coser.java 2010-11-05 11:34:21 UTC (rev 172) @@ -24,6 +24,10 @@ */ package fr.ifremer.coser; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.File; + import javax.swing.SwingUtilities; import javax.swing.UIManager; @@ -34,6 +38,7 @@ import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.DefaultI18nInitializer; import org.nuiton.util.ArgumentsParserException; +import org.nuiton.widget.SwingSession; import fr.ifremer.coser.services.ChartService; import fr.ifremer.coser.services.ImportService; @@ -124,15 +129,24 @@ } } - // define unique context globale values + File coserConfigDirectory = new File(coserConfig.getUserConfigDirectory(), "coser"); + coserConfigDirectory.mkdirs(); + File mainFrameFile = new File(coserConfigDirectory, "session.xml"); + SwingSession session = new SwingSession(mainFrameFile, true); + + // define unique context global values DefaultApplicationContext context = new DefaultApplicationContext(); context.setContextValue(coserConfig); + context.setContextValue(session); context.setContextValue(new ProjectService(coserConfig)); context.setContextValue(new ImportService(coserConfig)); context.setContextValue(new ValidationService(coserConfig)); context.setContextValue(new ChartService(coserConfig)); + + // init frame with session reloading CoserFrame frame = new CoserFrame(context); frame.setLocationRelativeTo(null); + session.add(frame); frame.setVisible(true); } }); Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx 2010-11-05 10:00:25 UTC (rev 171) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrame.jaxx 2010-11-05 11:34:21 UTC (rev 172) @@ -23,7 +23,7 @@ #L% --> <JFrame title="coser.ui.mainview.title" width="780" height="540" - layout="{new BorderLayout()}" onWindowClosing="System.exit(0)"> + layout="{new BorderLayout()}" name="mainFrame" onWindowClosing="getHandler().quit()"> <CoserFrameHandler id="handler" javaBean="new CoserFrameHandler(this)" /> Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-11-05 10:00:25 UTC (rev 171) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/CoserFrameHandler.java 2010-11-05 11:34:21 UTC (rev 172) @@ -49,6 +49,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; +import org.nuiton.widget.SwingSession; import fr.ifremer.coser.CoserBusinessConfig; import fr.ifremer.coser.CoserBusinessException; @@ -133,9 +134,11 @@ /** * Exit application. - * + * Save swing session before exit. */ public void quit() { + SwingSession session = view.getContextValue(SwingSession.class); + session.save(); System.exit(0); }
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org