formatting
[jalview.git] / src / jalview / bin / JalviewLite.java
index 52e7408..5f75c18 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)\r
- * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle\r
  * \r
  * This file is part of Jalview.\r
  * \r
@@ -492,6 +492,9 @@ public class JalviewLite extends Applet implements
       boolean seqlimits = suffix.equalsIgnoreCase("true");\r
       if (alf.viewport.getSelectionGroup() != null)\r
       {\r
+        // JBPNote: getSelectionAsNewSequence behaviour has changed - this\r
+        // method now returns a full copy of sequence data\r
+        // TODO consider using getSequenceSelection instead here\r
         String reply = new AppletFormatAdapter().formatSequences(format,\r
                 new Alignment(alf.viewport.getSelectionAsNewSequence()),\r
                 seqlimits);\r
@@ -716,6 +719,30 @@ public class JalviewLite extends Applet implements
   /*\r
    * (non-Javadoc)\r
    * \r
+   * @see jalview.bin.JalviewLiteJsApi#loadAnnotation(java.lang.String)\r
+   */\r
+  public void loadFeatures(String features, boolean autoenabledisplay)\r
+  {\r
+    loadFeaturesFrom(getDefaultTargetFrame(), features, autoenabledisplay);\r
+  }\r
+\r
+  /*\r
+   * (non-Javadoc)\r
+   * \r
+   * @see\r
+   * jalview.bin.JalviewLiteJsApi#loadAnnotationFrom(jalview.appletgui.AlignFrame\r
+   * , java.lang.String)\r
+   */\r
+  public boolean loadFeaturesFrom(AlignFrame alf, String features,\r
+          boolean autoenabledisplay)\r
+  {\r
+    return alf.parseFeaturesFile(features, AppletFormatAdapter.PASTE,\r
+            autoenabledisplay);\r
+  }\r
+\r
+  /*\r
+   * (non-Javadoc)\r
+   * \r
    * @see jalview.bin.JalviewLiteJsApi#getFeatures(java.lang.String)\r
    */\r
   public String getFeatures(String format)\r
@@ -1840,7 +1867,56 @@ public class JalviewLite extends Applet implements
           }\r
         }\r
 \r
-        String param = applet.getParameter("features");\r
+        /*\r
+         * Try to load T-Coffee score file\r
+         */\r
+        String sScoreFile = applet.getParameter("scoreFile");\r
+        if (sScoreFile != null && !"".equals(sScoreFile))\r
+        {\r
+          try\r
+          {\r
+            if (debug)\r
+            {\r
+              System.err\r
+                      .println("Attempting to load T-COFFEE score file from the scoreFile parameter");\r
+            }\r
+            if (!newAlignFrame.loadScoreFile(sScoreFile))\r
+            {\r
+              System.err\r
+                      .println("Failed to parse T-COFFEE parameter as a valid score file ('"\r
+                              + sScoreFile + "')");\r
+            }\r
+          } catch (Exception e)\r
+          {\r
+            System.err.printf("Cannot read score file: '%s'. Cause: %s \n",\r
+                    sScoreFile, e.getMessage());\r
+          }\r
+        }\r
+\r
+        // ///////////////////////////\r
+        // modify display of features\r
+        // we do this before any features have been loaded, ensuring any hidden\r
+        // groups are hidden when features first displayed\r
+        //\r
+        // hide specific groups\r
+        //\r
+        String param = applet.getParameter("hidefeaturegroups");\r
+        if (param != null)\r
+        {\r
+          newAlignFrame.setFeatureGroupState(separatorListToArray(param),\r
+                  false);\r
+          // applet.setFeatureGroupStateOn(newAlignFrame, param, false);\r
+        }\r
+        // show specific groups\r
+        param = applet.getParameter("showfeaturegroups");\r
+        if (param != null)\r
+        {\r
+          newAlignFrame.setFeatureGroupState(separatorListToArray(param),\r
+                  true);\r
+          // applet.setFeatureGroupStateOn(newAlignFrame, param, true);\r
+        }\r
+        // and now load features\r
+        param = applet.getParameter("features");\r
         if (param != null)\r
         {\r
           param = setProtocolState(param);\r
@@ -2059,21 +2135,6 @@ public class JalviewLite extends Applet implements
                   protocols);\r
 \r
         }\r
-        // ///////////////////////////\r
-        // modify display of features\r
-        //\r
-        // hide specific groups\r
-        param = applet.getParameter("hidefeaturegroups");\r
-        if (param != null)\r
-        {\r
-          applet.setFeatureGroupStateOn(newAlignFrame, param, false);\r
-        }\r
-        // show specific groups\r
-        param = applet.getParameter("showfeaturegroups");\r
-        if (param != null)\r
-        {\r
-          applet.setFeatureGroupStateOn(newAlignFrame, param, true);\r
-        }\r
       }\r
       else\r
       {\r