javadoc
[jalview.git] / src / jalview / datamodel / SequenceGroup.java
index 11a5ab3..49f270d 100755 (executable)
@@ -47,6 +47,11 @@ public class SequenceGroup
 
   boolean colourText = false;
   /**
+   * after Olivier's non-conserved only character display
+   */
+  boolean showUnconserved = false;
+  
+  /**
    * group members
    */
   private Vector sequences = new Vector();
@@ -123,7 +128,10 @@ public class SequenceGroup
       while (sq.hasMoreElements()) { 
         sequences.addElement(sq.nextElement()); 
       };
-      groupName = new String(seqsel.groupName);
+      if (seqsel.groupName!=null)
+      {
+        groupName = new String(seqsel.groupName);
+      }
       displayBoxes = seqsel.displayBoxes;
       displayText = seqsel.displayText;
       colourText = seqsel.colourText;
@@ -132,7 +140,6 @@ public class SequenceGroup
       cs =seqsel.cs;
       if (seqsel.description!=null)
         description = new String(seqsel.description);
-      groupName = new String(seqsel.groupName);
       hidecols = seqsel.hidecols;
       hidereps = seqsel.hidereps;
       idColour = seqsel.idColour;
@@ -684,11 +691,12 @@ public class SequenceGroup
 
   /**
    * 
-   * returns the sequences in the group ordered by the ordering given by al
-   * 
+   * returns the sequences in the group ordered by the ordering given by al.
+   * this used to return an array with null entries regardless, new behaviour is below.
+   * TODO: verify that this does not affect use in applet or application
    * @param al
    *                Alignment
-   * @return SequenceI[]
+   * @return SequenceI[] intersection of sequences in group with al, ordered by al, or null if group does not intersect with al
    */
   public SequenceI[] getSequencesInOrder(AlignmentI al)
   {
@@ -705,7 +713,20 @@ public class SequenceGroup
         seqs[index++] = al.getSequenceAt(i);
       }
     }
-
+    if (index==0)
+    {
+      return null;
+    }
+    if (index<seqs.length)
+    {
+      SequenceI[] dummy = seqs;
+      seqs = new SequenceI[index];
+      while (--index>=0)
+      {
+        seqs[index] = dummy[index];
+        dummy[index] = null;
+      }
+    }
     return seqs;
   }
 
@@ -814,4 +835,27 @@ public class SequenceGroup
     }
     return sgroup;
   }
+
+  /**
+   * @return the showUnconserved
+   */
+  public boolean getShowunconserved()
+  {
+    return showUnconserved;
+  }
+
+  /**
+   * @param showUnconserved the showUnconserved to set
+   */
+  public void setShowunconserved(boolean displayNonconserved)
+  {
+    this.showUnconserved = displayNonconserved;
+  }
+
+  public AlignmentAnnotation getConsensus()
+  {
+    // TODO get or calculate and get consensus annotation row for this group
+    this.conserve.getConsSequence();
+    return null;
+  }
 }