Splash Screen

Purpose

When a ULC client is started, the description of the GUI is sent from the server to the client. Although the GUI description format is optimized, this process might take a few seconds for complex GUIs. Displaying a splash screen during the transfer process will reduce the perceived waiting period. It is also a good chance to display some general info or logo at start-up time.

How to use

We have to write a custom client launcher that handles showing the splash screen before connecting to the server and that handles hiding the splash screen after the GUI description has been downloaded from the server. A message service is registered on the client-side and will be notified by the server-side after the GUI description has been transferred completely. An example of a custom JNLP launcher is shown below:

public class SplashScreenJNLPLauncher
{
  public static void main(String[] args) throws MalformedURLException
  {
    SplashScreenHandler splashScreenHandler = new SplashScreenHandler(new SplashScreen());
    ClientEnvironmentAdapter.setMessageService(splashScreenHandler);
    splashScreenHandler.showSplashScreen();

DefaultJnlpLauncher.main(args); } }

In our ULC application, after setting the main window visible, we send a message to the client that notfies it to hide the splash screen.

public class SplashScreenApplication extends AbstractApplication
{
  public void start()
  {
    ULCRootPane mainView = new MainView();
    mainView.setVisible(true);
    ClientContext.sendMessage("hideSplash");
  }
}

Resources