Merge branch 'improvement/JAL-4023_snotation_for_trees' into develop
[jalview.git] / src / jalview / datamodel / SequenceGroup.java
index 1e579ec..5e33229 100755 (executable)
@@ -25,7 +25,6 @@ import jalview.analysis.Conservation;
 import jalview.renderer.ResidueShader;
 import jalview.renderer.ResidueShaderI;
 import jalview.schemes.ColourSchemeI;
-import jalview.ws.params.InvalidArgumentException;
 
 import java.awt.Color;
 import java.beans.PropertyChangeListener;
@@ -89,7 +88,7 @@ public class SequenceGroup implements AnnotatedCollectionI
   /**
    * group members
    */
-  private List<SequenceI> sequences = new ArrayList<>();
+  private List<SequenceI> sequences;
 
   /**
    * representative sequence for this group (if any)
@@ -109,7 +108,7 @@ public class SequenceGroup implements AnnotatedCollectionI
   private int startRes = 0;
 
   /**
-   *  end column (base 0)
+   * end column (base 0)
    */
   private int endRes = 0;
 
@@ -163,6 +162,7 @@ public class SequenceGroup implements AnnotatedCollectionI
   {
     groupName = "JGroup:" + this.hashCode();
     cs = new ResidueShader();
+    sequences = new ArrayList<>();
   }
 
   /**
@@ -214,7 +214,7 @@ public class SequenceGroup implements AnnotatedCollectionI
       displayBoxes = seqsel.displayBoxes;
       displayText = seqsel.displayText;
       colourText = seqsel.colourText;
-      
+
       startRes = seqsel.startRes;
       endRes = seqsel.endRes;
       cs = new ResidueShader((ResidueShader) seqsel.cs);
@@ -244,6 +244,17 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
   }
 
+  /**
+   * Constructor that copies the given list of sequences
+   * 
+   * @param seqs
+   */
+  public SequenceGroup(List<SequenceI> seqs)
+  {
+    this();
+    this.sequences.addAll(seqs);
+  }
+
   public boolean isShowSequenceLogo()
   {
     return showSequenceLogo;
@@ -258,11 +269,12 @@ public class SequenceGroup implements AnnotatedCollectionI
     for (int i = 0, ipos = 0; i < inorder.length; i++)
     {
       SequenceI seq = inorder[i];
-      SequenceI seqipos = seqs[ipos] = seq.getSubSequence(startRes, endRes + 1);
+      SequenceI seqipos = seqs[ipos] = seq.getSubSequence(startRes,
+              endRes + 1);
       if (seqipos != null)
       {
         seqipos.setDescription(seq.getDescription());
-        seqipos.getDBRefsFrom(seq);
+        seqipos.setDBRefs(seq.getDBRefs());
         seqipos.setSequenceFeatures(seq.getSequenceFeatures());
         if (seq.getDatasetSequence() != null)
         {
@@ -762,10 +774,9 @@ public class SequenceGroup implements AnnotatedCollectionI
   public void setStartRes(int newStart)
   {
     int before = startRes;
-   startRes= Math.max(0,newStart); // sanity check for negative start column positions
-   changeSupport.firePropertyChange(SEQ_GROUP_CHANGED, before, startRes);
-    
-
+    startRes = Math.max(0, newStart); // sanity check for negative start column
+                                      // positions
+    changeSupport.firePropertyChange(SEQ_GROUP_CHANGED, before, startRes);
 
   }