FormatAdapter throws exception
[jalview.git] / src / jalview / bin / JalviewLite.java
index b4adf07..c4e17fb 100755 (executable)
@@ -46,6 +46,7 @@ public class JalviewLite extends Applet
     Button launcher = new Button("Start Jalview");\r
 \r
     static AlignFrame currentAlignFrame;\r
+    boolean embedded = false;\r
 \r
 \r
     /**\r
@@ -80,33 +81,30 @@ public class JalviewLite extends Applet
 \r
         this.setBackground(new Color(r, g, b));\r
 \r
+        file = getParameter("file");\r
+        if(file.indexOf("://")==-1)\r
+               file = getCodeBase() + file;\r
 \r
-        param = getParameter("features");\r
-        if(param!=null)\r
+        final JalviewLite applet = this;\r
+        if(getParameter("embedded")!=null\r
+           && getParameter("embedded").equalsIgnoreCase("true"))\r
         {\r
-          if(param.indexOf("://")==-1)\r
-               param = getCodeBase() + param;\r
+          embedded = true;\r
+          LoadingThread loader = new LoadingThread(file,\r
+                            "URL",\r
+                            applet);\r
+          loader.start();\r
         }\r
-        final String featuresFile = param;\r
-\r
-        file = getParameter("file");\r
-        final JalviewLite applet = this;\r
-        if (file != null)\r
+        else if (file != null)\r
         {\r
             add(launcher);\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
                         LoadingThread loader = new LoadingThread(file,\r
                             "URL",\r
-                            format,\r
-                            featuresFile,\r
                             applet);\r
                         loader.start();\r
                       }\r
@@ -129,8 +127,13 @@ public class JalviewLite extends Applet
       }\r
 \r
       String format = jalview.io.IdentifyFile.Identify(args[0],"File");\r
-      SequenceI[] sequences = new AppletFormatAdapter().readFile(args[0], "File", format);\r
-\r
+      SequenceI[] sequences = null;\r
+     try{\r
+       sequences = new AppletFormatAdapter().readFile(args[0], "File", format);\r
+     }catch(java.io.IOException ex)\r
+     {\r
+       ex.printStackTrace();\r
+     }\r
       if ( (sequences != null) && (sequences.length > 0))\r
       {\r
         AlignFrame af = new AlignFrame(new Alignment(sequences), null, args[0]);\r
@@ -218,6 +221,15 @@ public class JalviewLite extends Applet
             g.drawString("Jalview can't open file", 5, 15);\r
             g.drawString("\"" + file + "\"", 5, 30);\r
         }\r
+        else if(embedded)\r
+        {\r
+          g.setColor(Color.black);\r
+          g.setFont(new Font("Arial", Font.BOLD, 24));\r
+          g.drawString("Jalview Applet", 50, this.size().height/2 -30);\r
+          g.drawString("Loading Data...", 50, this.size().height/2);\r
+        }\r
+\r
+\r
     }\r
 \r
     class LoadingThread extends Thread\r
@@ -225,43 +237,47 @@ public class JalviewLite extends Applet
         String file;\r
         String protocol;\r
         String format;\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
-            featuresFile = features;\r
+            format = jalview.io.IdentifyFile.Identify(file, "URL");\r
             this.applet = applet;\r
         }\r
 \r
         public void run()\r
         {\r
             SequenceI[] sequences = null;\r
-            sequences = new AppletFormatAdapter().readFile(file, protocol, format);\r
-\r
+            try{\r
+              sequences = new AppletFormatAdapter().readFile(file, protocol,\r
+                  format);\r
+            }catch(java.io.IOException ex)\r
+            {\r
+              ex.printStackTrace();\r
+            }\r
             if ((sequences != null) && (sequences.length > 0))\r
             {\r
-                currentAlignFrame = new AlignFrame(new Alignment(sequences),\r
-                        applet, file);\r
-                currentAlignFrame.statusBar.setText("Successfully loaded file " + file);\r
+              currentAlignFrame = new AlignFrame(new Alignment(sequences),\r
+                                                 applet, file);\r
+              if (embedded)\r
+                currentAlignFrame.setEmbedded();\r
+\r
+              currentAlignFrame.statusBar.setText("Successfully loaded file " + file);\r
 \r
-                if(featuresFile!=null)\r
-                  currentAlignFrame.parseFeaturesFile(featuresFile);\r
 \r
                 String treeFile = applet.getParameter("treeFile");\r
                 if (treeFile != null)\r
                 {\r
+                  if (treeFile.indexOf("://") == -1)\r
+                    treeFile = getCodeBase() + treeFile;\r
+\r
                   try\r
                   {\r
-                    jalview.io.NewickFile fin = new jalview.io.NewickFile(applet.\r
-                        getCodeBase() + treeFile, "URL");\r
+                    jalview.io.NewickFile fin = new jalview.io.NewickFile(treeFile, "URL");\r
                     fin.parse();\r
 \r
                     if (fin.getTree() != null)\r
@@ -269,7 +285,7 @@ public class JalviewLite extends Applet
                       TreePanel tp = null;\r
                       tp = new TreePanel(currentAlignFrame.viewport,\r
                                          currentAlignFrame.viewport.getAlignment().getSequences(),\r
-                                         fin, "FromFile", applet.getCodeBase() + treeFile);\r
+                                         fin, "FromFile", treeFile);\r
                       addFrame(tp, treeFile, 600, 500);\r
                       currentAlignFrame.addTreeMenuItem(tp, treeFile);\r
                     }\r
@@ -280,6 +296,28 @@ public class JalviewLite extends Applet
                   }\r
               }\r
 \r
+              String param = getParameter("features");\r
+              if (param != null)\r
+              {\r
+                if (param.indexOf("://") == -1)\r
+                  param = getCodeBase() + param;\r
+\r
+                currentAlignFrame.parseFeaturesFile(param);\r
+              }\r
+\r
+             param = getParameter("annotations");\r
+             if (param != null)\r
+             {\r
+               if (param.indexOf("://") == -1)\r
+                 param = getCodeBase() + param;\r
+\r
+               new AnnotationReader().readAnnotationFile(\r
+                   currentAlignFrame.viewport.getAlignment(),\r
+                   param);\r
+\r
+               currentAlignFrame.alignPanel.fontChanged();\r
+             }\r
+\r
 \r
                 String pdbfile = applet.getParameter("PDBFILE");\r
                 if(pdbfile!=null)\r