Merge branch 'bug/JAL-2630gradColourUpdateOverview' into develop
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 1 Aug 2017 09:39:24 +0000 (11:39 +0200)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 1 Aug 2017 09:39:24 +0000 (11:39 +0200)
src/jalview/appletgui/SeqPanel.java
src/jalview/gui/IdPanel.java
src/jalview/gui/SeqPanel.java
test/jalview/viewmodel/OverviewDimensionsShowHiddenTest.java

index e4e3640..d000c73 100644 (file)
@@ -643,8 +643,8 @@ public class SeqPanel extends Panel implements MouseMotionListener,
       wrappedBlock += startRes / cwidth;
       int startOffset = startRes % cwidth; // in case start is scrolled right
                                            // from 0
-      res = wrappedBlock * cwidth
-              + Math.min(cwidth - 1, startOffset + x / av.getCharWidth());
+      res = wrappedBlock * cwidth + startOffset
+              + +Math.min(cwidth - 1, x / av.getCharWidth());
     }
     else
     {
index 065f97e..2d24512 100755 (executable)
@@ -154,7 +154,7 @@ public class IdPanel extends JPanel implements MouseListener,
       {
         av.getRanges().scrollRight(true);
       }
-      else
+      else if (!av.getWrapAlignment())
       {
         av.getRanges().scrollUp(false);
       }
@@ -165,7 +165,7 @@ public class IdPanel extends JPanel implements MouseListener,
       {
         av.getRanges().scrollRight(false);
       }
-      else
+      else if (!av.getWrapAlignment())
       {
         av.getRanges().scrollUp(true);
       }
index 6fbed49..26096e6 100644 (file)
@@ -216,8 +216,8 @@ public class SeqPanel extends JPanel implements MouseListener,
       wrappedBlock += startRes / cwidth;
       // allow for wrapped view scrolled right (possible from Overview)
       int startOffset = startRes % cwidth;
-      res = wrappedBlock * cwidth
-              + Math.min(cwidth - 1, startOffset + x / av.getCharWidth());
+      res = wrappedBlock * cwidth + startOffset
+              + +Math.min(cwidth - 1, x / av.getCharWidth());
     }
     else
     {
@@ -1616,7 +1616,7 @@ public class SeqPanel extends JPanel implements MouseListener,
         av.getRanges().scrollRight(true);
 
       }
-      else
+      else if (!av.getWrapAlignment())
       {
         av.getRanges().scrollUp(false);
       }
@@ -1627,7 +1627,7 @@ public class SeqPanel extends JPanel implements MouseListener,
       {
         av.getRanges().scrollRight(false);
       }
-      else
+      else if (!av.getWrapAlignment())
       {
         av.getRanges().scrollUp(true);
       }
index 1bc3bfa..66480c9 100644 (file)
@@ -1022,4 +1022,53 @@ public class OverviewDimensionsShowHiddenTest
 
     hiddenRepSequences.put(allseqs[start], theseSeqs);
   }
+
+  /**
+   * Test setting of the box position, when there are hidden rows at the start
+   * of the alignment
+   */
+  @Test(groups = { "Functional" })
+  public void testFromMouseWithHiddenRowsAtStartWrapped()
+  {
+    vpranges.setWrappedMode(true);
+    od.updateViewportFromMouse(0, 0, al.getHiddenSequences(), hiddenCols);
+    assertEquals(od.getBoxX(), 0);
+    assertEquals(od.getBoxY(), 0);
+    assertEquals(od.getBoxHeight(), boxHeight);
+    assertEquals(od.getBoxWidth(), boxWidth);
+    assertEquals(vpranges.getStartRes(), 0);
+    assertEquals(vpranges.getStartSeq(), 0);
+  
+    // hide rows at start and check updated box position is correct
+    // changes boxY but not boxheight
+    int lastHiddenRow = 30;
+    hideSequences(0, lastHiddenRow);
+  
+    od.setBoxPosition(al.getHiddenSequences(), hiddenCols);
+    assertEquals(od.getBoxX(), 0);
+    assertEquals(od.getBoxY(),
+            Math.round((float) (lastHiddenRow + 1)
+                    * od.getSequencesHeight() / alheight));
+    assertEquals(od.getBoxWidth(), boxWidth);
+    assertEquals(od.getBoxHeight(), boxHeight);
+  
+    // click in hidden rows - same result
+    mouseClick(od, 0, 0);
+    assertEquals(od.getBoxX(), 0);
+    int boxY = od.getBoxY();
+    assertEquals(
+            boxY,
+            Math.round((float) (lastHiddenRow + 1)
+                    * od.getSequencesHeight() / alheight));
+    assertEquals(od.getBoxWidth(), boxWidth);
+    assertEquals(od.getBoxHeight(), boxHeight);
+  
+    // click below hidden rows
+    // vertical move of overview box is suppressed in wrapped mode
+    mouseClick(od, 0, 150);
+    assertEquals(od.getBoxX(), 0);
+    assertEquals(od.getBoxY(), boxY); // unchanged
+    assertEquals(od.getBoxWidth(), boxWidth);
+    assertEquals(od.getBoxHeight(), boxHeight);
+  }
 }