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