/hg/icedtea-web: Close the splashscreen in case of error (not ju...
dlila at icedtea.classpath.org
dlila at icedtea.classpath.org
Fri Jun 10 10:16:28 PDT 2011
changeset 0398f63d1b21 in /hg/icedtea-web
details: http://icedtea.classpath.org/hg/icedtea-web?cmd=changeset;node=0398f63d1b21
author: Denis Lila <dlila at redhat.com>
date: Fri Jun 10 13:15:00 2011 -0400
Close the splashscreen in case of error (not just successful
launch).
diffstat:
ChangeLog | 11 ++++++++
netx/net/sourceforge/jnlp/GuiLaunchHandler.java | 31 ++++++++++++++++--------
2 files changed, 32 insertions(+), 10 deletions(-)
diffs (90 lines):
diff -r 6b46e55a8854 -r 0398f63d1b21 ChangeLog
--- 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 at 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 at redhat.com>
* netx/net/sourceforge/jnlp/cache/DefaultDownloadIndicator.java:
diff -r 6b46e55a8854 -r 0398f63d1b21 netx/net/sourceforge/jnlp/GuiLaunchHandler.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;
}
More information about the distro-pkg-dev
mailing list