JAL-3285 add unmerged code to SequenceGroup
authortva <tva@10.205.251.175>
Wed, 5 Jun 2019 13:04:52 +0000 (14:04 +0100)
committertva <tva@10.205.251.175>
Wed, 5 Jun 2019 13:04:52 +0000 (14:04 +0100)
src/jalview/datamodel/SequenceGroup.java

index 56681cf..59cb4bb 100755 (executable)
@@ -48,35 +48,49 @@ public class SequenceGroup implements AnnotatedCollectionI
   // a subclass of ViewportProperties similarly to ViewportRanges.
   // Done here as a quick fix for JAL-2665
   public static final String SEQ_GROUP_CHANGED = "Sequence group changed";
+  
+  protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
+          this);
+
+  public void addPropertyChangeListener(PropertyChangeListener listener)
+  {
+    changeSupport.addPropertyChangeListener(listener);
+  }
 
-  private String groupName;
+  public void removePropertyChangeListener(PropertyChangeListener listener)
+  {
+    changeSupport.removePropertyChangeListener(listener);
+  }
+  // end of event notification functionality initialisation
 
-  private String description;
+  String groupName;
 
-  private AnnotatedCollectionI context;
+  String description;
+  
+  Conservation conserve;
 
-  private Conservation conservationData;
+  Conservation conservationData;
 
-  private ProfilesI consensusProfiles;
+  ProfilesI consensusProfiles;
 
-  private ProfilesI hmmProfiles;
+  ProfilesI hmmProfiles;
 
-  private boolean displayBoxes = true;
+  boolean displayBoxes = true;
 
-  private boolean displayText = true;
+  boolean displayText = true;
 
-  private boolean colourText = false;
+  boolean colourText = false;
 
   /*
    * true if the group is defined as a group on the alignment, false if it is
    * just a selection
    */
-  private boolean isDefined;
+  boolean isDefined = false;
 
   /*
    * after Olivier's non-conserved only character display
    */
-  private boolean showNonconserved;
+  boolean showNonconserved = false;
 
   /*
    * sequences in the group
@@ -86,9 +100,9 @@ public class SequenceGroup implements AnnotatedCollectionI
   /*
    * representative sequence for this group (if any)
    */
-  private SequenceI seqrep;
+  private SequenceI seqrep = null;
 
-  private int width = -1;
+  int width = -1;
 
   /*
    * colour scheme applied to group if any
@@ -107,9 +121,9 @@ public class SequenceGroup implements AnnotatedCollectionI
 
   public Color outlineColour = Color.black;
 
-  public Color idColour;
+  public Color idColour = null;
 
-  public int thresholdTextColour;
+  public int thresholdTextColour = 0;
 
   public Color textColour = Color.black;
 
@@ -120,12 +134,10 @@ public class SequenceGroup implements AnnotatedCollectionI
    */
   private boolean ignoreGapsInConsensus = true;
 
-  private boolean showSequenceLogo;
+  private boolean showSequenceLogo = false;
 
   private boolean normaliseSequenceLogo;
 
-  private boolean showConsensusHistogram;
-
   /*
    * properties for HMM information annotation
    */
@@ -142,18 +154,23 @@ public class SequenceGroup implements AnnotatedCollectionI
   /*
    * visibility of rows or represented rows covered by group
    */
-  private boolean hidereps;
+  private boolean hidereps = false;
 
   /*
    * visibility of columns intersecting this group
    */
   private boolean hidecols;
 
-  private AlignmentAnnotation consensus;
+  AlignmentAnnotation consensus = null;
 
-  private AlignmentAnnotation conservation;
+  AlignmentAnnotation conservation = null;
 
   private AlignmentAnnotation hmmInformation;
+  
+  private boolean showConsensusHistogram;
+  
+  private AnnotatedCollectionI context;
+
 
   /**
    * Constructor, assigning a generated default name of "JGroup:" with object
@@ -200,30 +217,17 @@ public class SequenceGroup implements AnnotatedCollectionI
    * copy constructor
    * 
    * @param seqsel
-   */
-  public SequenceGroup(SequenceGroup seqsel)
-  {
-    this(seqsel, true);
-  }
-
-  /**
-   * copy constructor
-   * 
-   * @param seqsel
    * @param keepsequences
    *          if false do not add sequences from seqsel to new instance
    */
-  public SequenceGroup(SequenceGroup seqsel, boolean keepsequences)
+  public SequenceGroup(SequenceGroup seqsel)
   {
     this();
 
     if (seqsel != null)
     {
       sequences = new ArrayList<>();
-      if (keepsequences)
-      {
-        sequences.addAll(seqsel.sequences);
-      }
+      sequences.addAll(seqsel.sequences);
       if (seqsel.groupName != null)
       {
         groupName = new String(seqsel.groupName);
@@ -258,7 +262,7 @@ public class SequenceGroup implements AnnotatedCollectionI
       ignoreGapsInConsensus = seqsel.ignoreGapsInConsensus;
       hmmIgnoreBelowBackground = seqsel.hmmIgnoreBelowBackground;
       hmmUseInfoLetterHeight = seqsel.hmmUseInfoLetterHeight;
-      if (keepsequences && seqsel.conservationData != null)
+      if (seqsel.conserve != null)
       {
         // todo avoid doing this if we don't actually want derived calculations
         // !
@@ -268,19 +272,6 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
   }
 
-  protected PropertyChangeSupport changeSupport = new PropertyChangeSupport(
-          this);
-
-  public void addPropertyChangeListener(PropertyChangeListener listener)
-  {
-    changeSupport.addPropertyChangeListener(listener);
-  }
-
-  public void removePropertyChangeListener(PropertyChangeListener listener)
-  {
-    changeSupport.removePropertyChangeListener(listener);
-  }
-
   /**
    * Constructor that copies the given list of sequences
    * 
@@ -297,8 +288,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     return showSequenceLogo;
   }
 
-  public SequenceI[] getSelectionAsNewSequences(AlignmentI align,
-          boolean copyAnnotation)
+  public SequenceI[] getSelectionAsNewSequences(AlignmentI align)
   {
     int iSize = sequences.size();
     SequenceI[] seqs = new SequenceI[iSize];
@@ -312,8 +302,14 @@ public class SequenceGroup implements AnnotatedCollectionI
       if (seqs[ipos] != null)
       {
         seqs[ipos].setDescription(seq.getDescription());
+        seqs[ipos].setDBRefs(seq.getDBRefs());
+        seqs[ipos].setSequenceFeatures(seq.getSequenceFeatures());
+        if (seq.getDatasetSequence() != null)
+        {
+          seqs[ipos].setDatasetSequence(seq.getDatasetSequence());
+        }
 
-        if (seq.getAnnotation() != null && copyAnnotation)
+        if (seq.getAnnotation() != null)
         {
           AlignmentAnnotation[] alann = align.getAlignmentAnnotation();
           // Only copy annotation that is either a score or referenced by the
@@ -537,7 +533,7 @@ public class SequenceGroup implements AnnotatedCollectionI
    */
   public Conservation getConservation()
   {
-    return conservationData;
+    return conserve;
   }
 
   /**
@@ -548,7 +544,7 @@ public class SequenceGroup implements AnnotatedCollectionI
    */
   public void setConservation(Conservation c)
   {
-    conservationData = c;
+    conserve = c;
   }
 
   /**
@@ -609,7 +605,7 @@ public class SequenceGroup implements AnnotatedCollectionI
    */
   public boolean recalcConservation()
   {
-    return recalcAnnotations(false);
+    return recalcConservation(false);
   }
 
   /**
@@ -621,7 +617,7 @@ public class SequenceGroup implements AnnotatedCollectionI
    *          when set, colourschemes for this group are not refreshed after
    *          recalculation
    */
-  public boolean recalcAnnotations(boolean defer)
+  public boolean recalcConservation(boolean defer)
   {
     if (cs == null && consensus == null && conservation == null
             && hmmInformation == null)
@@ -717,6 +713,8 @@ public class SequenceGroup implements AnnotatedCollectionI
     c.completeAnnotations(conservation, null, startRes, endRes + 1);
   }
 
+  public ProfilesI consensusData = null;
+
   private void _updateConsensusRow(ProfilesI cnsns, long nseq)
   {
     if (consensus == null)
@@ -725,7 +723,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     }
     consensus.label = "Consensus for " + getName();
     consensus.description = "Percent Identity";
-    consensusProfiles = cnsns;
+    consensusData = cnsns;
     // preserve width if already set
     int aWidth = (consensus.annotations != null)
             ? (endRes < consensus.annotations.length
@@ -1323,7 +1321,7 @@ public class SequenceGroup implements AnnotatedCollectionI
     ignoreGapsInConsensus = state;
   }
 
-  public boolean isIgnoreGapsConsensus()
+  public boolean getIgnoreGapsConsensus()
   {
     return ignoreGapsInConsensus;
   }