From: gmungoc Date: Tue, 1 Aug 2017 09:39:24 +0000 (+0200) Subject: Merge branch 'bug/JAL-2630gradColourUpdateOverview' into develop X-Git-Tag: Release_2_10_3b1~132^2~31 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=ab6eae795dfc5bb9f3b529d9ca9549a84ad4c100;hp=bb27d9c1cc4d5c31df6bae6c469178b2b700e119;p=jalview.git Merge branch 'bug/JAL-2630gradColourUpdateOverview' into develop --- diff --git a/src/jalview/appletgui/SeqPanel.java b/src/jalview/appletgui/SeqPanel.java index e4e3640..d000c73 100644 --- a/src/jalview/appletgui/SeqPanel.java +++ b/src/jalview/appletgui/SeqPanel.java @@ -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 { diff --git a/src/jalview/gui/IdPanel.java b/src/jalview/gui/IdPanel.java index 065f97e..2d24512 100755 --- a/src/jalview/gui/IdPanel.java +++ b/src/jalview/gui/IdPanel.java @@ -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); } diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index 6fbed49..26096e6 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -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); } diff --git a/test/jalview/viewmodel/OverviewDimensionsShowHiddenTest.java b/test/jalview/viewmodel/OverviewDimensionsShowHiddenTest.java index 1bc3bfa..66480c9 100644 --- a/test/jalview/viewmodel/OverviewDimensionsShowHiddenTest.java +++ b/test/jalview/viewmodel/OverviewDimensionsShowHiddenTest.java @@ -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); + } }