X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSplashScreen.java;h=c159cd29961247a023387d3d74491b8a46316cda;hb=a4833a9c3e15e416598b61e6887ee5743c3c2734;hp=6edab5da5d6310d4353b11b531c522ec520c6475;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/gui/SplashScreen.java b/src/jalview/gui/SplashScreen.java index 6edab5d..c159cd2 100755 --- a/src/jalview/gui/SplashScreen.java +++ b/src/jalview/gui/SplashScreen.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,6 +22,12 @@ import java.awt.*; import java.awt.event.*; import javax.swing.*; +/** + * DOCUMENT ME! + * + * @author $author$ + * @version $Revision$ + */ public class SplashScreen extends JPanel implements Runnable { @@ -31,10 +37,31 @@ public class SplashScreen int fontSize = 11; int yoffset = 30; - public SplashScreen(JInternalFrame iframe, Image i) + /** + * Creates a new SplashScreen object. + * + * @param iframe DOCUMENT ME! + * @param i DOCUMENT ME! + */ + public SplashScreen() { - this.iframe = iframe; - image = i; + try + { + java.net.URL url = getClass().getResource("/images/logo.gif"); + + if (url != null) + { + image = java.awt.Toolkit.getDefaultToolkit().createImage(url); + + MediaTracker mt = new MediaTracker(this); + mt.addImage(image, 0); + mt.waitForID(0); + Desktop.instance.setIconImage(image); + } + } + catch (Exception ex) + { + } Thread t = new Thread(this); t.start(); @@ -51,19 +78,30 @@ public class SplashScreen } } }); + + iframe = new JInternalFrame(); + iframe.setFrameIcon(null); + iframe.setClosable(false); + iframe.setContentPane(this); + iframe.setLayer(JLayeredPane.PALETTE_LAYER); + + Desktop.desktop.add(iframe); + + iframe.setVisible(true); + iframe.setBounds( (int) ( (Desktop.instance.getWidth() - 750) / 2), + (int) ( (Desktop.instance.getHeight() - 160) / 2), + 750, 160); } + /** + * DOCUMENT ME! + */ public void run() { long startTime = System.currentTimeMillis() / 1000; while (visible) { - if ( ( (System.currentTimeMillis() / 1000) - startTime) > 5) - { - visible = false; - } - try { Thread.sleep(1000); @@ -71,22 +109,37 @@ public class SplashScreen catch (Exception ex) { } + + if ( ( (System.currentTimeMillis() / 1000) - startTime) > 5) + { + visible = false; + } + else + repaint(); } closeSplash(); } + /** + * DOCUMENT ME! + */ public void closeSplash() { try { + iframe.setClosed(true); } catch (Exception ex) - { - } + { } } + /** + * DOCUMENT ME! + * + * @param g DOCUMENT ME! + */ public void paintComponent(Graphics g) { g.setColor(Color.white); @@ -99,20 +152,51 @@ public class SplashScreen g.drawImage(image, 5, yoffset + 12, this); } - g.drawString("JalView 2005 ", 50, yoffset); + int y = yoffset; + + g.drawString("Jalview " + jalview.bin.Cache.getProperty("VERSION"), 50, y); + + FontMetrics fm = g.getFontMetrics(); + int vwidth = fm.stringWidth("Jalview " + + jalview.bin.Cache.getProperty("VERSION")); g.setFont(new Font("Verdana", Font.BOLD, fontSize + 2)); - g.drawString("Version " + jalview.bin.Cache.VERSION + - "; Last updated: " + jalview.bin.Cache.BUILD_DATE, 180, - yoffset); + g.drawString("Last updated: " + + jalview.bin.Cache.getDefault("BUILD_DATE", "unknown"), + 50 + vwidth + 5, y); + + if (jalview.bin.Cache.getDefault("LATEST_VERSION", + "Checking").equals("Checking")) + { + // Displayed when code version and jnlp version do not match + g.drawString("...Checking latest version...", + 50, y += fontSize + 10); + y += 5; + g.setColor(Color.black); + } + else if (!jalview.bin.Cache.getDefault("LATEST_VERSION", "Checking").equals( + jalview.bin.Cache.getProperty("VERSION"))) + { + // Displayed when code version and jnlp version do not match + g.setColor(Color.red); + g.drawString("!! Jalview version " + + jalview.bin.Cache.getDefault("LATEST_VERSION", + "..Checking..") + + + " is available for download from http://www.jalview.org !!", + 50, y += fontSize + 10); + y += 5; + g.setColor(Color.black); + } + g.setFont(new Font("Verdana", Font.BOLD, fontSize)); g.drawString("Authors: Michele Clamp, James Cuff, Steve Searle, Andrew Waterhouse, Jim Procter & Geoff Barton.", - 50, yoffset + 20); + 50, y += fontSize + 4); g.drawString("Current development managed by Andrew Waterhouse; Barton Group, University of Dundee.", - 50, yoffset + 24 + fontSize); + 50, y += fontSize + 4); g.drawString("If you use JalView, please cite: Clamp, M., Cuff, J., Searle, S. M. and Barton, G. J. (2004),", - 50, yoffset + 28 + (fontSize * 2)); + 50, y += fontSize + 4); g.drawString( - "\"The Jalview Java Alignment Editor\" Bioinformatics, 2004 12;426-7.", - 50, yoffset + 32 + (fontSize * 3)); + "\"The Jalview Java Alignment Editor\" Bioinformatics, 2004 20; 426-7.", + 50, y += fontSize + 4); } }