selected region output also supports generation of annotations
authorjprocter <Jim Procter>
Thu, 4 Oct 2007 16:37:59 +0000 (16:37 +0000)
committerjprocter <Jim Procter>
Thu, 4 Oct 2007 16:37:59 +0000 (16:37 +0000)
src/jalview/gui/PopupMenu.java
src/jalview/io/FormatAdapter.java

index 2068b0b..01a0907 100755 (executable)
@@ -1302,16 +1302,22 @@ public class PopupMenu
 
     String[] omitHidden = null;
 
-    if (ap.av.hasHiddenColumns)
-    {
-      System.out.println("PROMPT USER HERE");
-      omitHidden = ap.av.getViewAsString(true);
+    System.out.println("PROMPT USER HERE"); // TODO: decide if a prompt happens or we simply trust the user wants wysiwig behaviour
+    SequenceGroup sg = ap.av.getSelectionGroup();
+    ColumnSelection csel = new ColumnSelection(ap.av.getColumnSelection());
+    omitHidden = ap.av.getViewAsString(true);
+    Alignment oal = new Alignment(ap.av.getSequenceSelection());
+    AlignmentAnnotation[] nala = ap.av.alignment.getAlignmentAnnotation();
+    for (int i=0; i<nala.length; i++)
+    {
+      AlignmentAnnotation na =nala[i];
+      oal.addAnnotation(na);
     }
-
     cap.setText(new FormatAdapter().formatSequences(
-        e.getActionCommand(),
-        ap.av.getSelectionAsNewSequence(),
-        omitHidden));
+            e.getActionCommand(),
+            oal,
+            omitHidden, csel, sg));
+    oal=null;
   }
 
   public void pdbFromFile_actionPerformed()
index 24c9109..3cbd73b 100755 (executable)
@@ -119,6 +119,13 @@ public class FormatAdapter
         afile.addJVSuffix(
             jalview.bin.Cache.getDefault("PFAM_JVSUFFIX", true));
       }
+      /* amsa is not supported by this function - it requires an alignment rather than a sequence vector
+      else if (format.equalsIgnoreCase("AMSA"))
+      {
+        afile = new AMSAFile();
+        afile.addJVSuffix(
+            jalview.bin.Cache.getDefault("AMSA_JVSUFFIX", true));
+      }*/
 
       afile.setSeqs(seqs);
 
@@ -141,7 +148,11 @@ public class FormatAdapter
   }
   public String formatSequences(String format, AlignmentI alignment, String[] omitHidden, ColumnSelection colSel)
   {
-    return formatSequences(format, alignment, omitHidden, getCacheSuffixDefault(format), colSel);
+    return formatSequences(format, alignment, omitHidden, getCacheSuffixDefault(format), colSel, null);
+  }
+  public String formatSequences(String format, AlignmentI alignment, String[] omitHidden, ColumnSelection colSel, SequenceGroup sgp)
+  {
+    return formatSequences(format, alignment, omitHidden, getCacheSuffixDefault(format), colSel, sgp);
   }
     /**
    * hack function to replace seuqences with visible sequence strings before generating a
@@ -154,7 +165,12 @@ public class FormatAdapter
    */
   public String formatSequences(String format, AlignmentI alignment, String[] omitHidden, boolean suffix, ColumnSelection colSel)
   {
-    AlignFile afile = null;
+    return formatSequences(format, alignment, omitHidden, suffix, colSel, null);
+  }
+
+  public String formatSequences(String format, AlignmentI alignment, String[] omitHidden, boolean suffix, 
+          ColumnSelection colSel, jalview.datamodel.SequenceGroup selgp)
+  {
     if (omitHidden!=null)
     {
       // 
@@ -163,7 +179,12 @@ public class FormatAdapter
       for (int i=0; i<ala.length; i++)
       {
         AlignmentAnnotation na = new AlignmentAnnotation(ala[i]);
-        colSel.makeVisibleAnnotation(na);
+        if (selgp!=null)
+        {
+          colSel.makeVisibleAnnotation(selgp.getStartRes(),selgp.getEndRes(), na);
+        } else {
+          colSel.makeVisibleAnnotation(na);
+        }
         alv.addAnnotation(na);
       }
       return this.formatSequences(format, alv, suffix);