Parse id before url completion
[jalview.git] / src / jalview / bin / JalviewLite.java
index c9ec391..1a2ba27 100755 (executable)
@@ -40,18 +40,18 @@ public class JalviewLite extends Applet
 {\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
+    AlignFrame currentAlignFrame;\r
+\r
+\r
     /**\r
      * init method for Jalview Applet\r
      */\r
     public void init()\r
     {\r
-        applet = this;\r
-\r
         int r = 255;\r
         int g = 255;\r
         int b = 255;\r
@@ -73,22 +73,42 @@ public class JalviewLite extends Applet
             }\r
         }\r
 \r
+        param = getParameter("label");\r
+        if(param != null)\r
+          launcher.setLabel(param);\r
+\r
         this.setBackground(new Color(r, g, b));\r
 \r
-        file = getParameter("file");\r
 \r
+        param = getParameter("features");\r
+        if(param!=null)\r
+        {\r
+          if(param.indexOf("://")==-1)\r
+               param = getCodeBase() + param;\r
+        }\r
+        final String featuresFile = param;\r
+\r
+        file = getParameter("file");\r
+        final JalviewLite applet = this;\r
         if (file != null)\r
         {\r
             add(launcher);\r
-            file = applet.getCodeBase() + file;\r
+            if(file.indexOf("://")==-1)\r
+               file = getCodeBase() + file;\r
+\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
+                        LoadingThread loader = new LoadingThread(file,\r
+                            "URL",\r
+                            format,\r
+                            featuresFile,\r
+                            applet);\r
+                        loader.start();\r
+                      }\r
                 });\r
         }\r
         else\r
@@ -98,6 +118,7 @@ public class JalviewLite extends Applet
         }\r
     }\r
 \r
+\r
     public static void main(String [] args)\r
     {\r
       if(args.length!=1)\r
@@ -107,61 +128,15 @@ public class JalviewLite extends Applet
       }\r
 \r
       String format = jalview.io.IdentifyFile.Identify(args[0],"File");\r
-      SequenceI[] sequences = FormatAdapter.readFile(args[0], "File", format);\r
+      SequenceI[] sequences = new AppletFormatAdapter().readFile(args[0], "File", format);\r
 \r
       if ( (sequences != null) && (sequences.length > 0))\r
       {\r
-        AlignFrame af = new AlignFrame(new Alignment(sequences), null);\r
-        addFrame(af, args[0], AlignFrame.NEW_WINDOW_WIDTH,\r
-                 AlignFrame.NEW_WINDOW_HEIGHT);\r
+        AlignFrame af = new AlignFrame(new Alignment(sequences), null, args[0]);\r
         af.statusBar.setText("Successfully loaded file " + args[0]);\r
       }\r
     }\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
-      showURL(url, "HELP");\r
-    }\r
-\r
-      public static void showURL(String url, String target)\r
-      {\r
-        if(applet==null)\r
-        {\r
-          System.out.println("Not running as applet - no browser available.");\r
-        }\r
-        else\r
-        {\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
-\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
@@ -189,6 +164,28 @@ public class JalviewLite extends Applet
         frame.setVisible(true);\r
     }\r
 \r
+    public String getAlignment(String format)\r
+    {\r
+      return getAlignment(format, "true");\r
+    }\r
+\r
+    public String getAlignment(String format, String suffix)\r
+    {\r
+      try\r
+      {\r
+        boolean seqlimits = suffix.equalsIgnoreCase("true");\r
+\r
+        String reply = new AppletFormatAdapter().formatSequences(format,\r
+            currentAlignFrame.viewport.getAlignment().getSequences(), seqlimits);\r
+        return reply;\r
+      }\r
+      catch (Exception ex)\r
+      {ex.printStackTrace();\r
+        return "Error retrieving alignment in " + format + " format. ";\r
+\r
+      }\r
+    }\r
+\r
     /**\r
      * This paints the background surrounding the "Launch Jalview button"\r
      * <br>\r
@@ -214,29 +211,35 @@ public class JalviewLite extends Applet
         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
+        String featuresFile;\r
+        JalviewLite applet;\r
+\r
+        public LoadingThread(String file,\r
+                             String protocol,\r
+                             String format,\r
+                             String features,\r
+                             JalviewLite applet)\r
         {\r
             this.file = file;\r
             this.protocol = protocol;\r
             this.format = format;\r
-            this.jlapplet = applet;\r
+            featuresFile = features;\r
+            this.applet = applet;\r
         }\r
 \r
         public void run()\r
         {\r
             SequenceI[] sequences = null;\r
-            sequences = FormatAdapter.readFile(file, protocol, format);\r
+            sequences = new AppletFormatAdapter().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
+                currentAlignFrame = new AlignFrame(new Alignment(sequences),\r
+                        applet, file);\r
+                currentAlignFrame.statusBar.setText("Successfully loaded file " + file);\r
+\r
+                if(featuresFile!=null)\r
+                  currentAlignFrame.parseFeaturesFile(featuresFile);\r
             }\r
             else\r
             {\r