Applet files
[jalview.git] / src / jalview / bin / JalviewLite.java
1 package jalview.bin;\r
2 \r
3 import java.applet.*;\r
4 import java.awt.*;\r
5 import java.awt.event.*;\r
6 import jalview.datamodel.*;\r
7 import jalview.io.*;\r
8 import jalview.appletgui.AlignFrame;\r
9 \r
10 public class JalviewLite extends Applet\r
11 {\r
12   static int lastFrameX = 200;\r
13   static int lastFrameY = 200;\r
14   static Applet applet;\r
15   boolean fileFound = true;\r
16   String file = "No file";\r
17   Button launcher = new Button("Start Jalview");\r
18 \r
19   public void init()\r
20   {\r
21     applet = this;\r
22     this.setBackground(Color.white);\r
23 \r
24     file = getParameter("file");\r
25     if (file != null)\r
26     {\r
27       add(launcher);\r
28       file = applet.getCodeBase() + file;\r
29       launcher.addActionListener(new java.awt.event.ActionListener()\r
30      {\r
31        public void actionPerformed(ActionEvent e)\r
32        {\r
33          String format = jalview.io.IdentifyFile.Identify( file, "URL");\r
34          LoadFile(file, "URL", format);\r
35        }\r
36      });\r
37     }\r
38      else\r
39      {\r
40        file = "NO FILE";\r
41        fileFound = false;\r
42      }\r
43    }\r
44 \r
45 \r
46    public static void showURL(String url)\r
47    {\r
48      try{\r
49        applet.getAppletContext().showDocument(new java.net.URL(url), "HELP_WINDOW");\r
50      }catch(Exception ex){}\r
51    }\r
52 \r
53    public void LoadFile(String file, String protocol,  String format)\r
54    {\r
55      LoadingThread loader = new LoadingThread(file, protocol, format, this);\r
56      loader.start();\r
57    }\r
58 \r
59    public static void addFrame(final Frame frame, String title, int width, int height)\r
60    {\r
61      frame.setLocation(lastFrameX,lastFrameY);\r
62      lastFrameX+=40; lastFrameY+=40;\r
63      frame.setSize(width,height);\r
64      frame.setTitle(title);\r
65      frame.addWindowListener(new WindowAdapter()\r
66     {\r
67       public void windowClosing(WindowEvent e)\r
68       {\r
69         frame.dispose();\r
70       }\r
71     });\r
72     frame.setVisible(true);\r
73    }\r
74 \r
75 \r
76    public void paint(Graphics g)\r
77    {\r
78      if(!fileFound)\r
79      {\r
80        g.setColor(new Color(200,200,200));\r
81        g.setColor(Color.cyan);\r
82        g.fillRect(0,0,getSize().width, getSize().height);\r
83        g.setColor(Color.red);\r
84        g.drawString("Jalview can't open file", 5, 15);\r
85        g.drawString("\""+ file+"\"", 5, 30);\r
86      }\r
87    }\r
88 \r
89    class LoadingThread extends Thread\r
90    {\r
91      String file, protocol, format;\r
92      JalviewLite jlapplet;\r
93 \r
94      public LoadingThread(String file, String protocol,  String format, JalviewLite applet)\r
95      {\r
96        this.file = file;\r
97        this.protocol = protocol;\r
98        this.format = format;\r
99        this.jlapplet = applet;\r
100      }\r
101      public void run()\r
102      {\r
103        SequenceI [] sequences = null;\r
104        sequences = FormatAdapter.readFile(file, protocol, format);\r
105 \r
106        if (sequences != null && sequences.length>0)\r
107        {\r
108          AlignFrame af = new AlignFrame(new Alignment(sequences), jlapplet );\r
109          addFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
110          af.statusBar.setText("Successfully loaded file " + file);\r
111        }\r
112        else\r
113        {\r
114          fileFound = false;\r
115          remove(launcher);\r
116          repaint();\r
117        }\r
118      }\r
119    }\r
120 }\r
121 \r
122 \r