r3888 - in trunk/src/main/java/fr/ifremer/isisfish: . simulator/launcher
Author: echatellier Date: 2014-02-21 17:29:51 +0100 (Fri, 21 Feb 2014) New Revision: 3888 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/3888 Log: Move monitoring thread starting to main() method Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java Modified: trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2014-02-21 16:29:02 UTC (rev 3887) +++ trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2014-02-21 16:29:51 UTC (rev 3888) @@ -44,6 +44,7 @@ import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; +import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; @@ -74,6 +75,7 @@ import fr.ifremer.isisfish.datastore.SimulationPlanStorage; import fr.ifremer.isisfish.datastore.SimulationStorage; import fr.ifremer.isisfish.datastore.SimulatorStorage; +import fr.ifremer.isisfish.simulator.launcher.SimulationMonitor; import fr.ifremer.isisfish.simulator.launcher.SimulationService; import fr.ifremer.isisfish.ui.WelcomeTabUI; import fr.ifremer.isisfish.ui.WelcomeUI; @@ -635,97 +637,107 @@ public static void launchUI() { if (config.isLaunchUI()) { - // catch wall application exception - Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { - public void uncaughtException(Thread t, Throwable cause) { - if (cause instanceof LinkageError) { - if (log.isFatalEnabled()) { - log.fatal("Linkage error detected", cause); - } + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { - // a real java.lang.Error sometimes happen when - // using non recompiled script due to dependency changes - // this is the better solution found : - // remove isis build directory - FileUtil.deleteRecursively(IsisFish.config.getCompileDirectory()); + // catch wall application exception + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + public void uncaughtException(Thread t, Throwable cause) { + if (cause instanceof LinkageError) { + if (log.isFatalEnabled()) { + log.fatal("Linkage error detected", cause); + } + + // a real java.lang.Error sometimes happen when + // using non recompiled script due to dependency changes + // this is the better solution found : + // remove isis build directory + FileUtil.deleteRecursively(IsisFish.config.getCompileDirectory()); - ErrorHelper.showErrorDialog(null, _("isisfish.error.linkageerror.message"), cause); - } - else { - if (log.isErrorEnabled()) { - log.error("Global application exception", cause); + ErrorHelper.showErrorDialog(null, _("isisfish.error.linkageerror.message"), cause); + } + else { + if (log.isErrorEnabled()) { + log.error("Global application exception", cause); + } + + // les NumberFormatException sont courantes lors de la saisie + // ca va etre relou de toutes les afficher + Throwable lastCause = cause; + while (lastCause.getCause() != null) { + lastCause = lastCause.getCause(); + } + if (!(lastCause instanceof NumberFormatException)) { + ErrorHelper.showErrorDialog(null, cause.getMessage(), cause); + } + } } - - // les NumberFormatException sont courantes lors de la saisie - // ca va etre relou de toutes les afficher - Throwable lastCause = cause; - while (lastCause.getCause() != null) { - lastCause = lastCause.getCause(); + }); + + // init simulater manager + SimulationService.getService(); + + // init IsisTray + IsisTray.getInstance(); + + // OpenMap sysout + MapBean.suppressCopyright = true; + + // configure swing session + // can't be in config ? getUserConfigDirectory() not static + File isisConfigDirectory = new File(config.getUserConfigDirectory(), "isis-fish"); + isisConfigDirectory.mkdirs(); + File sessionFile = new File(isisConfigDirectory, "session.xml"); + final SwingSession session = new SwingSession(sessionFile, true); + + // lauch first UI (welcomeUI) + WelcomeUI welcome = new WelcomeUI(); + welcome.setTitle(_("isisfish.welcome.title", IsisConfig.getVersion())); + // Set to exit on close + welcome.setDefaultCloseOperation(WelcomeUI.DO_NOTHING_ON_CLOSE); + welcome.addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + WelcomeUI ui = (WelcomeUI)e.getSource(); + ui.getHandler().close(ui); } - if (!(lastCause instanceof NumberFormatException)) { - ErrorHelper.showErrorDialog(null, cause.getMessage(), cause); + + @Override + public void windowClosed(WindowEvent e) { + session.save(); + quit(); } + }); + + try { + InputStream imageStream = WelcomeUI.class.getResourceAsStream("/images/simulation.gif"); + Image image = ImageIO.read(imageStream); + welcome.setIconImage(image); } + catch (IOException ex) { + if (log.isErrorEnabled()) { + log.error("Can't set frame icon", ex); + } + } + + // show main isis window + welcome.setLocationRelativeTo(null); + session.add(welcome); + + // small fix to set selected tab index always to first + WelcomeTabUI tabUI = (WelcomeTabUI)welcome.getWelcomePanelUI().getComponent(1); + tabUI.getSimulUI().getBodyTabbedPane().setSelectedIndex(0); + tabUI.getSensitivityUI().getBodyTabbedPane().setSelectedIndex(0); + + // display frame + welcome.setVisible(true); + + // + SimulationService service = SimulationService.getService(); + SimulationMonitor.getInstance().reloadConfig(service); } }); - - // init simulater manager - SimulationService.getService(); - - // init IsisTray - IsisTray.getInstance(); - - // OpenMap sysout - MapBean.suppressCopyright = true; - - // configure swing session - // can't be in config ? getUserConfigDirectory() not static - File isisConfigDirectory = new File(config.getUserConfigDirectory(), "isis-fish"); - isisConfigDirectory.mkdirs(); - File sessionFile = new File(isisConfigDirectory, "session.xml"); - final SwingSession session = new SwingSession(sessionFile, true); - - // lauch first UI (welcomeUI) - WelcomeUI welcome = new WelcomeUI(); - welcome.setTitle(_("isisfish.welcome.title", IsisConfig.getVersion())); - // Set to exit on close - welcome.setDefaultCloseOperation(WelcomeUI.DO_NOTHING_ON_CLOSE); - welcome.addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - WelcomeUI ui = (WelcomeUI)e.getSource(); - ui.getHandler().close(ui); - } - - @Override - public void windowClosed(WindowEvent e) { - session.save(); - quit(); - } - }); - - try { - InputStream imageStream = WelcomeUI.class.getResourceAsStream("/images/simulation.gif"); - Image image = ImageIO.read(imageStream); - welcome.setIconImage(image); - } - catch (IOException ex) { - if (log.isErrorEnabled()) { - log.error("Can't set frame icon", ex); - } - } - - // show main isis window - welcome.setLocationRelativeTo(null); - session.add(welcome); - - // small fix to set selected tab index always to first - WelcomeTabUI tabUI = (WelcomeTabUI)welcome.getWelcomePanelUI().getComponent(1); - tabUI.getSimulUI().getBodyTabbedPane().setSelectedIndex(0); - tabUI.getSensitivityUI().getBodyTabbedPane().setSelectedIndex(0); - - // display frame - welcome.setVisible(true); } else { if (log.isInfoEnabled()) { Modified: trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java =================================================================== --- trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2014-02-21 16:29:02 UTC (rev 3887) +++ trunk/src/main/java/fr/ifremer/isisfish/simulator/launcher/SimulationService.java 2014-02-21 16:29:51 UTC (rev 3888) @@ -201,9 +201,10 @@ // fait un appel au moniteur // pour reprendre le monitoring des simulation en cours // TODO check this, don't restart monitoring on non ui launch - if (IsisFish.config.isLaunchUI()) { - SimulationMonitor.getInstance().reloadConfig(this); - } + // moved to main() + //if (IsisFish.config.isLaunchUI()) { + // SimulationMonitor.getInstance().reloadConfig(this); + //} } /**
participants (1)
-
echatellier@users.forge.codelutin.com