JAL-1655 transfer setting option only displayed in development version of Jalview
[jalview.git] / src / jalview / datamodel / AlignmentView.java
index 433b127..e089a11 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
@@ -179,7 +179,9 @@ public class AlignmentView
         sgrps[g] = new ScGroup();
         sgrps[g].sg = new SequenceGroup(sg);
         addedgps[g] = false;
-        seqsets.set(g, sg.getSequences(null));
+        // can't set entry 0 in an empty list
+        // seqsets.set(g, sg.getSequences(null));
+        seqsets.add(sg.getSequences());
       }
       // seqsets now contains vectors (should be sets) for each group, so we can
       // track when we've done with the group
@@ -463,6 +465,7 @@ public class AlignmentView
    * alignment.
    * 
    * @param c
+   *          gap character to use to recreate the alignment
    * @return
    */
   private SequenceI[] getVisibleSeqs(char c)
@@ -470,13 +473,9 @@ public class AlignmentView
     SequenceI[] aln = new SequenceI[sequences.length];
     for (int i = 0, j = sequences.length; i < j; i++)
     {
-      aln[i] = sequences[i].getSeq('-');
-    }
-    // Remove hidden regions from sequence objects.
-    String seqs[] = getSequenceStrings('-');
-    for (int i = 0, j = aln.length; i < j; i++)
-    {
-      aln[i].setSequence(seqs[i]);
+      aln[i] = sequences[i].getSeq(c);
+      // Remove hidden regions from sequence
+      aln[i].setSequence(getASequenceString(c, i));
     }
     return aln;
   }
@@ -512,8 +511,38 @@ public class AlignmentView
   }
 
   /**
+   * build a string excluding hidden regions from a particular sequence in the
+   * view
+   * 
+   * @param c
+   * @param n
+   * @return
+   */
+  private String getASequenceString(char c, int n)
+  {
+    String sqn;
+    String fullseq = sequences[n].getSequenceString(c);
+    if (contigs != null)
+    {
+      sqn = "";
+      int p = 0;
+      for (int h = 0; h < contigs.length; h += 3)
+      {
+        sqn += fullseq.substring(p, contigs[h + 1]);
+        p = contigs[h + 1] + contigs[h + 2];
+      }
+      sqn += fullseq.substring(p);
+    }
+    else
+    {
+      sqn = fullseq;
+    }
+    return sqn;
+  }
+
+  /**
    * get an array of visible sequence strings for a view on an alignment using
-   * the given gap character
+   * the given gap character uses getASequenceString
    * 
    * @param c
    *          char
@@ -524,22 +553,7 @@ public class AlignmentView
     String[] seqs = new String[sequences.length];
     for (int n = 0; n < sequences.length; n++)
     {
-      String fullseq = sequences[n].getSequenceString(c);
-      if (contigs != null)
-      {
-        seqs[n] = "";
-        int p = 0;
-        for (int h = 0; h < contigs.length; h += 3)
-        {
-          seqs[n] += fullseq.substring(p, contigs[h + 1]);
-          p = contigs[h + 1] + contigs[h + 2];
-        }
-        seqs[n] += fullseq.substring(p);
-      }
-      else
-      {
-        seqs[n] = fullseq;
-      }
+      seqs[n] = getASequenceString(c, n);
     }
     return seqs;
   }