JAL-958 store/recover normalised flag
[jalview.git] / src / jalview / bin / JalviewLite.java
index 52e7408..9c23a0a 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,8 @@ 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 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 +718,29 @@ 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, boolean autoenabledisplay)\r
+  {\r
+    return alf.parseFeaturesFile(features, AppletFormatAdapter.PASTE, autoenabledisplay);\r
+  }\r
+\r
+\r
+  /*\r
+   * (non-Javadoc)\r
+   * \r
    * @see jalview.bin.JalviewLiteJsApi#getFeatures(java.lang.String)\r
    */\r
   public String getFeatures(String format)\r
@@ -1798,8 +1823,7 @@ public class JalviewLite extends Applet implements
 \r
         if (protocol == jalview.io.AppletFormatAdapter.PASTE)\r
         {\r
-          newAlignFrame.setTitle("Sequences from "\r
-                  + applet.getDocumentBase());\r
+          newAlignFrame.setTitle("Sequences from " + applet.getDocumentBase());\r
         }\r
 \r
         newAlignFrame.statusBar.setText("Successfully loaded file " + file);\r
@@ -1840,7 +1864,46 @@ public class JalviewLite extends Applet implements
           }\r
         }\r
 \r
-        String param = applet.getParameter("features");\r
+\r
+        /*\r
+         * Try to load T-Coffee score file\r
+         */\r
+        String sScoreFile = applet.getParameter("scoreFile");\r
+        if( sScoreFile != null && !"".equals(sScoreFile) ) {\r
+            try {\r
+              if (debug) {\r
+                System.err.println("Attempting to load T-COFFEE score file from the scoreFile parameter");\r
+              }\r
+              if (!newAlignFrame.loadScoreFile(sScoreFile)) {\r
+                System.err.println("Failed to parse T-COFFEE parameter as a valid score file ('"+sScoreFile+"')");\r
+              }\r
+            }catch( Exception e ) {\r
+               System.err.printf("Cannot read score file: '%s'. Cause: %s \n", sScoreFile, e.getMessage());\r
+            }\r
+        }\r
+       \r
+\r
+        // ///////////////////////////\r
+        // modify display of features\r
+        // we do this before any features have been loaded, ensuring any hidden 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), 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), 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 +2122,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