+/*\r
+* Jalview - A Sequence Alignment Editor and Viewer\r
+* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+*\r
+* This program is free software; you can redistribute it and/or\r
+* modify it under the terms of the GNU General Public License\r
+* as published by the Free Software Foundation; either version 2\r
+* of the License, or (at your option) any later version.\r
+*\r
+* This program is distributed in the hope that it will be useful,\r
+* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
+* GNU General Public License for more details.\r
+*\r
+* You should have received a copy of the GNU General Public License\r
+* along with this program; if not, write to the Free Software\r
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA\r
+*/\r
package jalview.bin;\r
\r
+import jalview.appletgui.AlignFrame;\r
+\r
+import jalview.datamodel.*;\r
+\r
+import jalview.io.*;\r
+\r
import java.applet.*;\r
+\r
import java.awt.*;\r
import java.awt.event.*;\r
-import jalview.datamodel.*;\r
-import jalview.io.*;\r
-import jalview.appletgui.AlignFrame;\r
\r
+\r
+/**\r
+ * Jalview Applet. Runs in Java 1.18 runtime\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
public class JalviewLite extends Applet\r
{\r
- static int lastFrameX = 200;\r
- static int lastFrameY = 200;\r
- static Applet applet;\r
- boolean fileFound = true;\r
- String file = "No file";\r
- Button launcher = new Button("Start Jalview");\r
-\r
- public void init()\r
- {\r
- applet = this;\r
- this.setBackground(Color.white);\r
-\r
- file = getParameter("file");\r
- if (file != null)\r
+ static int lastFrameX = 200;\r
+ static int lastFrameY = 200;\r
+ static Applet applet;\r
+ boolean fileFound = true;\r
+ String file = "No file";\r
+ Button launcher = new Button("Start Jalview");\r
+\r
+ /**\r
+ * init method for Jalview Applet\r
+ */\r
+ public void init()\r
{\r
- add(launcher);\r
- file = applet.getCodeBase() + file;\r
- launcher.addActionListener(new java.awt.event.ActionListener()\r
- {\r
- public void actionPerformed(ActionEvent e)\r
- {\r
- String format = jalview.io.IdentifyFile.Identify( file, "URL");\r
- LoadFile(file, "URL", format);\r
- }\r
- });\r
+ applet = this;\r
+\r
+ int r = 255;\r
+ int g = 255;\r
+ int b = 255;\r
+ String param = getParameter("RGB");\r
+\r
+ if (param != null)\r
+ {\r
+ try\r
+ {\r
+ r = Integer.parseInt(param.substring(0, 2), 16);\r
+ g = Integer.parseInt(param.substring(2, 4), 16);\r
+ b = Integer.parseInt(param.substring(4, 6), 16);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ r = 255;\r
+ g = 255;\r
+ b = 255;\r
+ }\r
+ }\r
+\r
+ this.setBackground(new Color(r, g, b));\r
+\r
+ file = getParameter("file");\r
+\r
+ if (file != null)\r
+ {\r
+ add(launcher);\r
+ file = applet.getCodeBase() + file;\r
+ launcher.addActionListener(new java.awt.event.ActionListener()\r
+ {\r
+ public void actionPerformed(ActionEvent e)\r
+ {\r
+ String format = jalview.io.IdentifyFile.Identify(file,\r
+ "URL");\r
+ LoadFile(file, "URL", format);\r
+ }\r
+ });\r
+ }\r
+ else\r
+ {\r
+ file = "NO FILE";\r
+ fileFound = false;\r
+ }\r
}\r
- else\r
- {\r
- file = "NO FILE";\r
- fileFound = false;\r
- }\r
- }\r
-\r
-\r
- public static void showURL(String url)\r
- {\r
- try{\r
- applet.getAppletContext().showDocument(new java.net.URL(url), "HELP_WINDOW");\r
- }catch(Exception ex){}\r
- }\r
-\r
- public void LoadFile(String file, String protocol, String format)\r
- {\r
- LoadingThread loader = new LoadingThread(file, protocol, format, this);\r
- loader.start();\r
- }\r
-\r
- public static void addFrame(final Frame frame, String title, int width, int height)\r
- {\r
- frame.setLocation(lastFrameX,lastFrameY);\r
- lastFrameX+=40; lastFrameY+=40;\r
- frame.setSize(width,height);\r
- frame.setTitle(title);\r
- frame.addWindowListener(new WindowAdapter()\r
+\r
+ /**\r
+ * Displays the given URL in a new browser window\r
+ *\r
+ * @param url URL to display in browser window.\r
+ * <br>New window will be named "HELP_WINDOW"\r
+ */\r
+ public static void showURL(String url)\r
{\r
- public void windowClosing(WindowEvent e)\r
+ showURL(url, "HELP");\r
+ }\r
+\r
+ public static void showURL(String url, String target)\r
{\r
- frame.dispose();\r
+ try\r
+ {\r
+ applet.getAppletContext().showDocument(new java.net.URL(url),\r
+ target);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ ex.printStackTrace();\r
+ }\r
}\r
- });\r
- frame.setVisible(true);\r
- }\r
-\r
-\r
- public void paint(Graphics g)\r
- {\r
- if(!fileFound)\r
- {\r
- g.setColor(new Color(200,200,200));\r
- g.setColor(Color.cyan);\r
- g.fillRect(0,0,getSize().width, getSize().height);\r
- g.setColor(Color.red);\r
- g.drawString("Jalview can't open file", 5, 15);\r
- g.drawString("\""+ file+"\"", 5, 30);\r
- }\r
- }\r
-\r
- class LoadingThread extends Thread\r
- {\r
- String file, protocol, format;\r
- JalviewLite jlapplet;\r
-\r
- public LoadingThread(String file, String protocol, String format, JalviewLite applet)\r
- {\r
- this.file = file;\r
- this.protocol = protocol;\r
- this.format = format;\r
- this.jlapplet = applet;\r
- }\r
- public void run()\r
- {\r
- SequenceI [] sequences = null;\r
- sequences = FormatAdapter.readFile(file, protocol, format);\r
-\r
- if (sequences != null && sequences.length>0)\r
- {\r
- AlignFrame af = new AlignFrame(new Alignment(sequences), jlapplet );\r
- addFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH, AlignFrame.NEW_WINDOW_HEIGHT);\r
- af.statusBar.setText("Successfully loaded file " + file);\r
- }\r
- else\r
- {\r
- fileFound = false;\r
- remove(launcher);\r
- repaint();\r
- }\r
- }\r
- }\r
-}\r
\r
\r
+ /**\r
+ * Starts a new LoadingThread for loading an alignment file\r
+ *\r
+ * @param file file name including full path to file\r
+ * @param protocol file or URL or paste\r
+ * @param format Fasta, Clustal, PFAM, MSF, PIR, BLC, Jalview\r
+ */\r
+ public void LoadFile(String file, String protocol, String format)\r
+ {\r
+ LoadingThread loader = new LoadingThread(file, protocol, format, this);\r
+ loader.start();\r
+ }\r
+\r
+ /**\r
+ * Initialises and displays a new java.awt.Frame\r
+ *\r
+ * @param frame java.awt.Frame to be displayed\r
+ * @param title title of new frame\r
+ * @param width width if new frame\r
+ * @param height height of new frame\r
+ */\r
+ public static void addFrame(final Frame frame, String title, int width,\r
+ int height)\r
+ {\r
+ frame.setLocation(lastFrameX, lastFrameY);\r
+ lastFrameX += 40;\r
+ lastFrameY += 40;\r
+ frame.setSize(width, height);\r
+ frame.setTitle(title);\r
+ frame.addWindowListener(new WindowAdapter()\r
+ {\r
+ public void windowClosing(WindowEvent e)\r
+ {\r
+ frame.dispose();\r
+ }\r
+ });\r
+ frame.setVisible(true);\r
+ }\r
+\r
+ /**\r
+ * This paints the background surrounding the "Launch Jalview button"\r
+ * <br>\r
+ * <br>If file given in parameter not found, displays error message\r
+ *\r
+ * @param g graphics context\r
+ */\r
+ public void paint(Graphics g)\r
+ {\r
+ if (!fileFound)\r
+ {\r
+ g.setColor(new Color(200, 200, 200));\r
+ g.setColor(Color.cyan);\r
+ g.fillRect(0, 0, getSize().width, getSize().height);\r
+ g.setColor(Color.red);\r
+ g.drawString("Jalview can't open file", 5, 15);\r
+ g.drawString("\"" + file + "\"", 5, 30);\r
+ }\r
+ }\r
+\r
+ class LoadingThread extends Thread\r
+ {\r
+ String file;\r
+ String protocol;\r
+ String format;\r
+ JalviewLite jlapplet;\r
+\r
+ public LoadingThread(String file, String protocol, String format,\r
+ JalviewLite applet)\r
+ {\r
+ this.file = file;\r
+ this.protocol = protocol;\r
+ this.format = format;\r
+ this.jlapplet = applet;\r
+ }\r
+\r
+ public void run()\r
+ {\r
+ SequenceI[] sequences = null;\r
+ sequences = FormatAdapter.readFile(file, protocol, format);\r
+\r
+ if ((sequences != null) && (sequences.length > 0))\r
+ {\r
+ AlignFrame af = new AlignFrame(new Alignment(sequences),\r
+ jlapplet);\r
+ addFrame(af, file, AlignFrame.NEW_WINDOW_WIDTH,\r
+ AlignFrame.NEW_WINDOW_HEIGHT);\r
+ af.statusBar.setText("Successfully loaded file " + file);\r
+ }\r
+ else\r
+ {\r
+ fileFound = false;\r
+ remove(launcher);\r
+ repaint();\r
+ }\r
+ }\r
+ }\r
+}\r