Mercurial > hg > release > icedtea-web-1.2
changeset 257:0398f63d1b21
Close the splashscreen in case of error (not just successful launch).
author | Denis Lila <dlila@redhat.com> |
---|---|
date | Fri, 10 Jun 2011 13:15:00 -0400 |
parents | 6b46e55a8854 |
children | e0741a8c44b6 |
files | ChangeLog netx/net/sourceforge/jnlp/GuiLaunchHandler.java |
diffstat | 2 files changed, 32 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Jun 10 13:13:02 2011 -0400 +++ b/ChangeLog Fri Jun 10 13:15:00 2011 -0400 @@ -1,3 +1,14 @@ +2011-06-10 Denis Lila <dlila@redhat.com> + + * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: + (mutex): New mutex for synchronizing splashScreen. + (closeSplashScreen): New method to hide and dispose + splashScreen. + (launchStarting): Call closeSplashScreen instead of doing it + inline. + (launchInitialized): Sync splashScreen creation. + (validationError, launchError): Call closeSplashScreen. + 2011-06-10 Denis Lila <dlila@redhat.com> * netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java:
--- a/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Fri Jun 10 13:13:02 2011 -0400 +++ b/netx/net/sourceforge/jnlp/GuiLaunchHandler.java Fri Jun 10 13:15:00 2011 -0400 @@ -53,6 +53,7 @@ public class GuiLaunchHandler implements LaunchHandler { private JNLPSplashScreen splashScreen = null; + private final Object mutex = new Object(); private UpdatePolicy policy = UpdatePolicy.ALWAYS; @Override @@ -65,22 +66,29 @@ SwingUtilities.invokeLater(new Runnable() { @Override public void run() { + closeSplashScreen(); BasicExceptionDialog.show(exception); } }); } + private void closeSplashScreen() { + synchronized(mutex) { + if (splashScreen != null) { + if (splashScreen.isSplashScreenValid()) { + splashScreen.setVisible(false); + } + splashScreen.dispose(); + } + } + } + @Override public void launchStarting(ApplicationInstance application) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - if (splashScreen != null) { - if (splashScreen.isSplashScreenValid()) { - splashScreen.setVisible(false); - } - splashScreen.dispose(); - } + closeSplashScreen(); } }); } @@ -98,10 +106,12 @@ if (splashImageURL != null) { ResourceTracker resourceTracker = new ResourceTracker(true); resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, policy); - splashScreen = new JNLPSplashScreen(resourceTracker, null, null); - splashScreen.setSplashImageURL(splashImageURL); - if (splashScreen.isSplashScreenValid()) { - splashScreen.setVisible(true); + synchronized(mutex) { + splashScreen = new JNLPSplashScreen(resourceTracker, null, null); + splashScreen.setSplashImageURL(splashImageURL); + if (splashScreen.isSplashScreenValid()) { + splashScreen.setVisible(true); + } } } } @@ -116,6 +126,7 @@ @Override public boolean validationError(LaunchException security) { + closeSplashScreen(); DefaultLaunchHandler.printMessage(security); return true; }