Merge branch 'features/JAL-3417_sdppred_calcs' into features/r2_11_2_JAL-3417_sdppred
[jalview.git] / src / jalview / viewmodel / AlignmentViewport.java
index ae101a3..3691a69 100644 (file)
@@ -724,6 +724,7 @@ public abstract class AlignmentViewport
   @Override
   public void setConservation(Conservation cons)
   {
+    alignment.setConservation(cons);
     hconservation = cons;
   }
 
@@ -742,6 +743,7 @@ public abstract class AlignmentViewport
   @Override
   public void setSequenceConsensusHash(ProfilesI hconsensus)
   {
+    alignment.setSequenceConsensusHash(hconsensus);
     this.hconsensus = hconsensus;
   }
 
@@ -749,6 +751,7 @@ public abstract class AlignmentViewport
   public void setComplementConsensusHash(
           Hashtable<String, Object>[] hconsensus)
   {
+    alignment.setComplementConsensusHash(hconsensus);
     this.hcomplementConsensus = hconsensus;
   }
 
@@ -774,6 +777,7 @@ public abstract class AlignmentViewport
   public void setRnaStructureConsensusHash(
           Hashtable<String, Object>[] hStrucConsensus)
   {
+    alignment.setRnaStructureConsensusHash(hStrucConsensus);
     this.hStrucConsensus = hStrucConsensus;
 
   }
@@ -963,6 +967,7 @@ public abstract class AlignmentViewport
     ranges = null;
     currentTree = null;
     selectionGroup = null;
+    colSel = null;
     setAlignment(null);
   }
 
@@ -1323,21 +1328,6 @@ public abstract class AlignmentViewport
    */
   private boolean followHighlight = true;
 
-  // private boolean disableFastPaint; // BH 2019.04.18
-  //
-  // /**
-  // * BH 2019.04.18 When gap filling is on and a modification is made to fill
-  // * those, we need to disallow fast painting for paste just once
-  // *
-  // * @return
-  // */
-  // public boolean isFastPaintDisabled()
-  // {
-  // boolean ret = disableFastPaint;
-  // disableFastPaint = false;
-  // return ret;
-  // }
-
   /**
    * Property change listener for changes in alignment
    * 
@@ -1873,11 +1863,6 @@ public abstract class AlignmentViewport
     if (isPadGaps())
     {
       alignment.padGaps();
-      // if (alignment.padGaps())
-      // {
-      // // the new alignment has been modified -- can't fast paint
-      // disableFastPaint = true;
-      // }
     }
     if (autoCalculateConsensus)
     {
@@ -2287,7 +2272,7 @@ public abstract class AlignmentViewport
   public void clearSequenceColours()
   {
     sequenceColours.clear();
-  };
+  }
 
   @Override
   public AlignViewportI getCodingComplement()
@@ -2740,6 +2725,30 @@ public abstract class AlignmentViewport
     viewStyle.setProteinFontAsCdna(b);
   }
 
+  @Override
+  public void setShowComplementFeatures(boolean b)
+  {
+    viewStyle.setShowComplementFeatures(b);
+  }
+
+  @Override
+  public boolean isShowComplementFeatures()
+  {
+    return viewStyle.isShowComplementFeatures();
+  }
+
+  @Override
+  public void setShowComplementFeaturesOnTop(boolean b)
+  {
+    viewStyle.setShowComplementFeaturesOnTop(b);
+  }
+
+  @Override
+  public boolean isShowComplementFeaturesOnTop()
+  {
+    return viewStyle.isShowComplementFeaturesOnTop();
+  }
+
   /**
    * @return true if view should scroll to show the highlighted region of a
    *         sequence
@@ -3074,4 +3083,22 @@ public abstract class AlignmentViewport
       codingComplement.setUpdateStructures(needToUpdateStructureViews);
     }
   }
+
+  @Override
+  public Iterator<int[]> getViewAsVisibleContigs(boolean selectedRegionOnly)
+  {
+    int start = 0;
+    int end = 0;
+    if (selectedRegionOnly && selectionGroup != null)
+    {
+      start = selectionGroup.getStartRes();
+      end = selectionGroup.getEndRes() + 1;
+    }
+    else
+    {
+      end = alignment.getWidth();
+    }
+    return (alignment.getHiddenColumns().getVisContigsIterator(start, end,
+            false));
+  }
 }