aboutsummaryrefslogtreecommitdiffstats
path: root/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
diff options
context:
space:
mode:
Diffstat (limited to 'netx/net/sourceforge/jnlp/JNLPSplashScreen.java')
-rw-r--r--netx/net/sourceforge/jnlp/JNLPSplashScreen.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/netx/net/sourceforge/jnlp/JNLPSplashScreen.java b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
new file mode 100644
index 0000000..2e9134b
--- /dev/null
+++ b/netx/net/sourceforge/jnlp/JNLPSplashScreen.java
@@ -0,0 +1,99 @@
+package net.sourceforge.jnlp;
+
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Insets;
+import java.awt.Toolkit;
+import java.io.IOException;
+import java.net.URL;
+
+import javax.imageio.ImageIO;
+import javax.swing.JFrame;
+
+import net.sourceforge.jnlp.cache.ResourceTracker;
+import net.sourceforge.jnlp.runtime.JNLPRuntime;
+
+public class JNLPSplashScreen extends JFrame {
+
+ String applicationTitle;
+ String applicationVendor;
+
+ ResourceTracker resourceTracker;
+
+ URL splashImageUrl;
+ Image splashImage;
+
+ public JNLPSplashScreen(ResourceTracker resourceTracker,
+ String applicationTitle, String applicationVendor) {
+
+ // If the JNLP file does not contain any icon images, the splash image
+ // will consist of the application's title and vendor, as taken from the
+ // JNLP file.
+
+ this.resourceTracker = resourceTracker;
+ this.applicationTitle = applicationTitle;
+ this.applicationVendor = applicationVendor;
+
+ }
+
+ public void setSplashImageURL(URL url) {
+ splashImageUrl = url;
+ splashImage = null;
+ try {
+ splashImage = ImageIO.read(resourceTracker
+ .getCacheFile(splashImageUrl));
+ if (splashImage == null) {
+ if (JNLPRuntime.isDebug()) {
+ System.err.println("Error loading splash image: " + url);
+ }
+ return;
+ }
+ } catch (IOException e) {
+ if (JNLPRuntime.isDebug()) {
+ System.err.println("Error loading splash image: " + url);
+ }
+ splashImage = null;
+ return;
+ } catch (IllegalArgumentException argumentException) {
+ if (JNLPRuntime.isDebug()) {
+ System.err.println("Error loading splash image: " + url);
+ }
+ splashImage = null;
+ return;
+ }
+
+ correctSize();
+ }
+
+ public boolean isSplashScreenValid() {
+ return (splashImage != null);
+ }
+
+ private void correctSize() {
+
+ Insets insets = getInsets();
+ int minimumWidth = splashImage.getWidth(null) + insets.left
+ + insets.right;
+ int minimumHeight = splashImage.getHeight(null) + insets.top
+ + insets.bottom;
+ setMinimumSize(new Dimension(minimumWidth, minimumHeight));
+
+ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ setLocation((screenSize.width - minimumWidth) / 2,
+ (screenSize.height - minimumHeight) / 2);
+ }
+
+ @Override
+ public void paint(Graphics g) {
+ if (splashImage == null) {
+ return;
+ }
+
+ correctSize();
+ Graphics2D g2 = (Graphics2D) g;
+ g2.drawImage(splashImage, getInsets().left, getInsets().top, null);
+
+ }
+}