package mediathek.gui; import java.awt.*; /** * A class to manage the splash screen. */ @SuppressWarnings("serial") public class SplashScreenManager { /** * The JVM {@link java.awt.SplashScreen} storage */ private SplashScreen splash = null; /** * Store the splash screen {@link Graphics2D} context here for reuse */ private Graphics2D splashScreenContext = null; /** * helper variable to calculate splash screen progress */ private int splashScreenProgress = 0; /** * wegeb der möglichen Abfrage: "Backup laden.." */ public void closeSplashScreen() { splashScreenContext = null; } public void updateSplashScreenText(final String text) { //bail out when we don´ have a splash screen... if (splashScreenContext == null) { return; } final int splashScreenYPosition = 430; final int splashScreenXPosition = 120; final int splashScreenWidth = 300; final int maxSteps = 11; // KEEP THIS CURRENT! splashScreenProgress++; splashScreenContext.setRenderingHint( RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); //clear the drawing area... splashScreenContext.setComposite(AlphaComposite.Clear); splashScreenContext.fillRect(splashScreenXPosition, (splashScreenYPosition - 10), splashScreenWidth, 40); splashScreenContext.setPaintMode(); //paint the text string... splashScreenContext.setFont(new Font("SansSerif", Font.BOLD, 12)); splashScreenContext.setColor(Color.WHITE); splashScreenContext.drawString(text, splashScreenXPosition, splashScreenYPosition + 2); // paint the full progress indicator... splashScreenContext.setColor(Color.BLUE); splashScreenContext.fillRect(splashScreenXPosition, splashScreenYPosition - 15, splashScreenWidth, 5); //paint how much is done... splashScreenContext.setColor(Color.GREEN); splashScreenContext.fillRect(splashScreenXPosition, splashScreenYPosition - 15, splashScreenProgress * (splashScreenWidth / maxSteps), 5); splash.update(); } /** * Initialize the Splash Screen variables. */ public void initializeSplashScreen() { try { splash = SplashScreen.getSplashScreen(); if (splash != null) { splashScreenContext = splash.createGraphics(); } } catch (Exception ex) { ex.printStackTrace(); } } }