a54a36f5891c6990058e33c824136e6a37db5e07
[jalview.git] / src / jalview / gui / SplashScreen.java
1 package jalview.gui;\r
2 \r
3 import javax.swing.*;\r
4 import java.awt.*;\r
5 import java.awt.event.*;\r
6 \r
7 public class SplashScreen extends JPanel implements Runnable\r
8 {\r
9   boolean visible = true;\r
10   JInternalFrame iframe;\r
11   Image image;\r
12 \r
13   public SplashScreen(JInternalFrame iframe, Image i)\r
14   {\r
15     this.iframe = iframe;\r
16     image = i;\r
17     Thread t = new Thread(this);\r
18     t.start();\r
19     addMouseListener(new MouseAdapter()\r
20     { public void mousePressed(MouseEvent evt)\r
21       {\r
22         try\r
23         {   closeSplash();  }\r
24         catch (Exception ex)\r
25         {}\r
26       }\r
27       });\r
28   }\r
29 \r
30 \r
31   public void run()\r
32   {\r
33     long startTime =  System.currentTimeMillis()/1000;\r
34 \r
35     while( visible )\r
36     {\r
37       if( System.currentTimeMillis()/1000 - startTime > 5)\r
38         visible = false;\r
39 \r
40       try{\r
41         Thread.sleep(400);\r
42         iframe.setSelected(true);\r
43       }\r
44       catch(Exception ex){}\r
45     }\r
46 \r
47     closeSplash();\r
48 \r
49   }\r
50 \r
51   public void closeSplash()\r
52   {\r
53     try\r
54     {\r
55       iframe.setClosed(true);\r
56     }\r
57     catch (Exception ex)\r
58     {}\r
59 \r
60   }\r
61 \r
62   int fontSize = 11;\r
63   int yoffset = 30;\r
64   public void paintComponent(Graphics g)\r
65   {\r
66     g.setColor(Color.white);\r
67     g.fillRect(0,0,getWidth(),getHeight());\r
68     g.setColor(Color.black);\r
69     g.setFont( new Font("Verdana", Font.BOLD, fontSize+4));\r
70     if(image!=null)\r
71     g.drawImage(image, 5,yoffset+10,this);\r
72     g.drawString("JalView 2005", 50,yoffset);\r
73     g.setFont( new Font("Verdana", Font.BOLD, fontSize));\r
74     g.drawString("Authors: Michele Clamp, James Cuff, Steve Searle, Andrew Waterhouse, Jim Procter & Geoff Barton.",50,yoffset+20);\r
75     g.drawString("Current development managed by Andrew Waterhouse; Barton Group, University of Dundee.",50,yoffset+20+fontSize);\r
76     g.drawString("If  you use JalView, please cite:",50,yoffset+20+fontSize*2);\r
77     g.drawString("\"Clamp, M., Cuff, J., Searle, S. M. and Barton, G. J. (2004), The Jalview Java Alignment Editor\"",50,yoffset+20+fontSize*3);\r
78 \r
79   }\r
80 \r
81 }\r