jalview 2.5 release banner
[jalview.git] / src / jalview / bin / JalviewLiteURLRetrieve.java
diff --git a/src/jalview/bin/JalviewLiteURLRetrieve.java b/src/jalview/bin/JalviewLiteURLRetrieve.java
new file mode 100644 (file)
index 0000000..6aad432
--- /dev/null
@@ -0,0 +1,144 @@
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5)
+ * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * 
+ * This file is part of Jalview.
+ * 
+ * Jalview 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 3 of the License, or (at your option) any later version.
+ * 
+ * Jalview 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 Jalview.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package jalview.bin;
+
+import jalview.datamodel.Alignment;
+import jalview.io.AppletFormatAdapter;
+import jalview.io.FileParse;
+
+import java.applet.Applet;
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+public class JalviewLiteURLRetrieve extends Applet
+{
+
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * This is the default constructor
+   */
+  public JalviewLiteURLRetrieve()
+  {
+    super();
+  }
+
+  /**
+   * This method initializes this
+   * 
+   * @return void
+   */
+  public void init()
+  {
+    this.setSize(300, 200);
+    String file = getParameter("file");
+    if (file == null)
+    {
+      System.out
+              .println("Specify a resource to read on the file parameter");
+      return;
+    }
+    String protocol = null;
+    try
+    {
+      System.out.println("Loading thread started with:\n>>file\n" + file
+              + ">>endfile");
+      // This might throw a security exception in certain browsers
+      // Netscape Communicator for instance.
+      try
+      {
+        boolean rtn = false;
+        InputStream is = getClass().getResourceAsStream("/" + file);
+        if (is != null)
+        {
+          rtn = true;
+          is.close();
+        }
+        System.err.println("Resource '" + file + "' was "
+                + (rtn ? "" : "not") + " located by classloader.");
+        if (rtn)
+        {
+          protocol = AppletFormatAdapter.CLASSLOADER;
+        }
+
+      } catch (Exception ex)
+      {
+        System.out.println("Exception checking resources: " + file + " "
+                + ex);
+      }
+      if (file.indexOf("://") > -1)
+      {
+        protocol = AppletFormatAdapter.URL;
+      }
+      else
+      {
+        // skipping codebase prepend check.
+        protocol = AppletFormatAdapter.FILE;
+      }
+
+      System.out.println("Trying to get contents of resource:");
+      FileParse fp = new FileParse(file, protocol);
+      if (fp.isValid())
+      {
+        String ln = null;
+        while ((ln = fp.nextLine()) != null)
+        {
+          System.out.print(ln);
+        }
+        fp.close();
+      }
+      else
+      {
+        System.out.println("Resource at " + file
+                + " cannot be read with protocol==" + protocol);
+        return;
+      }
+      String format = getParameter("format");
+      if (format == null || format.length() == 0)
+      {
+        format = new jalview.io.IdentifyFile().Identify(file, protocol);
+        System.out.println("Format is " + format);
+      }
+      else
+      {
+        System.out.println("User specified Format is " + format);
+      }
+      Alignment al = null;
+      try
+      {
+        al = new AppletFormatAdapter().readFile(file, protocol, format);
+      } catch (java.io.IOException ex)
+      {
+        System.err.println("Failed to open the file.");
+        ex.printStackTrace();
+      }
+      if (al != null)
+      {
+        System.out.println(new AppletFormatAdapter().formatSequences(
+                "FASTA", al, false));
+      }
+    } catch (Exception e)
+    {
+      System.err.println("bailing out : Unexpected exception:");
+      e.printStackTrace();
+    }
+  }
+
+}