JAL-2388 Working hidden regions hide/show in desktop
[jalview.git] / src / jalview / viewmodel / OverviewDimensionsWithHidden.java
index 6043755..e718d5a 100644 (file)
@@ -30,6 +30,8 @@ import jalview.datamodel.HiddenSequences;
 
 public class OverviewDimensionsWithHidden extends OverviewDimensions
 {
+  private ViewportRanges alRanges;
+
   /**
    * Create an OverviewDimensions object
    * 
@@ -42,9 +44,8 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
           boolean showAnnotationPanel)
   {
     super(ranges, showAnnotationPanel);
-
-    alwidth = ranges.getAbsoluteAlignmentWidth();
-    alheight = ranges.getAbsoluteAlignmentHeight();
+    alRanges = ranges;
+    resetAlignmentDims();
   }
 
   /**
@@ -63,14 +64,12 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
    */
   @Override
   public void updateViewportFromMouse(int mousex, int mousey,
-          HiddenSequences hiddenSeqs, HiddenColumns hiddenCols,
-          ViewportRanges ranges)
+          HiddenSequences hiddenSeqs, HiddenColumns hiddenCols)
   {
     int x = mousex;
     int y = mousey;
 
-    alwidth = ranges.getAbsoluteAlignmentWidth();
-    alheight = ranges.getAbsoluteAlignmentHeight();
+    resetAlignmentDims();
 
     if (x < 0)
     {
@@ -94,7 +93,7 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
     int xAsRes = Math.round((float) x * alwidth / width);
 
     // get viewport width in residues
-    int vpwidth = ranges.getEndRes() - ranges.getStartRes() + 1;
+    int vpwidth = alRanges.getEndRes() - alRanges.getStartRes() + 1;
 
     // get where x should be when accounting for hidden cols
     // if x is in a hidden col region, shift to left - but we still need
@@ -129,7 +128,7 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
 
     // get viewport height in sequences
     // add 1 because height includes both endSeq and startSeq
-    int vpheight = ranges.getEndSeq() - ranges.getStartSeq() + 1;
+    int vpheight = alRanges.getEndSeq() - alRanges.getStartSeq() + 1;
 
     // get where y should be when accounting for hidden rows
     // if y is in a hidden row region, shift up - but we still need absolute
@@ -174,18 +173,18 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
    */
   @Override
   public void setBoxPosition(HiddenSequences hiddenSeqs,
-          HiddenColumns hiddenCols, ViewportRanges ranges)
+          HiddenColumns hiddenCols)
   {
-    alwidth = ranges.getAbsoluteAlignmentWidth();
-    alheight = ranges.getAbsoluteAlignmentHeight();
+    resetAlignmentDims();
 
     // work with absolute values of startRes and endRes
-    int startRes = hiddenCols.adjustForHiddenColumns(ranges.getStartRes());
-    int endRes = hiddenCols.adjustForHiddenColumns(ranges.getEndRes());
+    int startRes = hiddenCols
+            .adjustForHiddenColumns(alRanges.getStartRes());
+    int endRes = hiddenCols.adjustForHiddenColumns(alRanges.getEndRes());
 
     // work with absolute values of startSeq and endSeq
-    int startSeq = hiddenSeqs.adjustForHiddenSeqs(ranges.getStartSeq());
-    int endSeq = hiddenSeqs.adjustForHiddenSeqs(ranges.getEndSeq());
+    int startSeq = hiddenSeqs.adjustForHiddenSeqs(alRanges.getStartSeq());
+    int endSeq = hiddenSeqs.adjustForHiddenSeqs(alRanges.getEndSeq());
 
     // boxX, boxY is the x,y location equivalent to startRes, startSeq
     boxX = Math.round((float) startRes * width / alwidth);
@@ -203,20 +202,25 @@ public class OverviewDimensionsWithHidden extends OverviewDimensions
   }
 
   @Override
-  public AlignmentColsCollectionI getColumns(ViewportRanges ranges,
-          HiddenColumns hiddenCols)
+  public AlignmentColsCollectionI getColumns(HiddenColumns hiddenCols)
   {
     return new AllColsCollection(0,
-            ranges.getAbsoluteAlignmentWidth() - 1,
+            alRanges.getAbsoluteAlignmentWidth() - 1,
             hiddenCols);
   }
 
   @Override
-  public AlignmentRowsCollectionI getRows(ViewportRanges ranges,
-          AlignmentI al)
+  public AlignmentRowsCollectionI getRows(AlignmentI al)
   {
     return new AllRowsCollection(0,
-            ranges.getAbsoluteAlignmentHeight() - 1,
+            alRanges.getAbsoluteAlignmentHeight() - 1,
             al);
   }
+
+  @Override
+  protected void resetAlignmentDims()
+  {
+    alwidth = alRanges.getAbsoluteAlignmentWidth();
+    alheight = alRanges.getAbsoluteAlignmentHeight();
+  }
 }