From e10781541da8ef982080b5b0c2ed3e8ced6f47d4 Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 30 Mar 2011 11:47:41 -0400 Subject: Add a new LaunchHandler to show error messages when starting applications This LaunchHandler is only used when not running in headless mode. This launchHandler is also responsible for showing the splash screen. 2011-03-30 Omair Majid * netx/net/sourceforge/jnlp/LaunchHandler.java (launchInitialized, launchStarting): New methods. * netx/net/sourceforge/jnlp/DefaultLaunchHandler.java (launchInitialized, launchStarting): New methods. No-op implementation. (printMessage): Make it static. * netx/net/sourceforge/jnlp/GuiLaunchHandler.java: New file. (launchCompleted, launchError, launchStarting, launchInitialized), (launchWarning, validationError): New methods. * netx/net/sourceforge/jnlp/Launcher.java (launchApplication): Invoke handler.launchInitialized and handler.launchStarting instead of showing a splash screen directly. * netx/net/sourceforge/jnlp/resources/Messages.properties: Add ButShowDetails, ButHideDetails and Error. * netx/net/sourceforge/jnlp/runtime/Boot.java (run): Do not exit on error. * netx/net/sourceforge/jnlp/runtime/JNLPRuntime.java (initialize): Set handler to GuiLaunchHandler if not running in headless mode. * netx/net/sourceforge/jnlp/util/BasicExceptionDialog.java: New file. (exceptionToString, show): New methods. --- netx/net/sourceforge/jnlp/Launcher.java | 22 ++-------------------- 1 file changed, 2 insertions(+), 20 deletions(-) (limited to 'netx/net/sourceforge/jnlp/Launcher.java') diff --git a/netx/net/sourceforge/jnlp/Launcher.java b/netx/net/sourceforge/jnlp/Launcher.java index 531e282..ea0afc4 100644 --- a/netx/net/sourceforge/jnlp/Launcher.java +++ b/netx/net/sourceforge/jnlp/Launcher.java @@ -396,20 +396,7 @@ public class Launcher { return null; } - final int preferredWidth = 500; - final int preferredHeight = 400; - JNLPSplashScreen splashScreen = null; - URL splashImageURL = file.getInformation().getIconLocation( - IconDesc.SPLASH, preferredWidth, preferredHeight); - if (splashImageURL != null) { - ResourceTracker resourceTracker = new ResourceTracker(true); - resourceTracker.addResource(splashImageURL, file.getFileVersion(), null, updatePolicy); - splashScreen = new JNLPSplashScreen(resourceTracker, null, null); - splashScreen.setSplashImageURL(splashImageURL); - if (splashScreen.isSplashScreenValid()) { - splashScreen.setVisible(true); - } - } + handler.launchInitialized(file); ApplicationInstance app = createApplication(file); app.initialize(); @@ -446,12 +433,7 @@ public class Launcher { setContextClassLoaderForAllThreads(app.getThreadGroup(), app.getClassLoader()); - if (splashScreen != null) { - if (splashScreen.isSplashScreenValid()) { - splashScreen.setVisible(false); - } - splashScreen.dispose(); - } + handler.launchStarting(app); main.setAccessible(true); main.invoke(null, new Object[] { args }); -- cgit v1.2.3