From 84a9af237d630df62cf74c71099706825fddd60c Mon Sep 17 00:00:00 2001 From: kiramt Date: Wed, 10 May 2017 11:45:44 +0100 Subject: [PATCH] JAL-2491 Cursor scrolling --- src/jalview/gui/SeqPanel.java | 28 ++------------------------- src/jalview/viewmodel/ViewportRanges.java | 30 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/jalview/gui/SeqPanel.java b/src/jalview/gui/SeqPanel.java index f1e4d13..ef2f782 100644 --- a/src/jalview/gui/SeqPanel.java +++ b/src/jalview/gui/SeqPanel.java @@ -387,32 +387,8 @@ public class SeqPanel extends JPanel implements MouseListener, } else { - while (seqCanvas.cursorY < av.getRanges().getStartSeq()) - { - av.getRanges().scrollUp(true); - } - while (seqCanvas.cursorY + 1 > av.getRanges().getEndSeq()) - { - av.getRanges().scrollUp(false); - } - - while (seqCanvas.cursorX < av.getColumnSelection() - .adjustForHiddenColumns(av.getRanges().getStartRes())) - { - if (!av.getRanges().scrollRight(false)) - { - break; - } - } - while (seqCanvas.cursorX > av.getColumnSelection() - .adjustForHiddenColumns(av.getRanges().getEndRes())) - { - if (!av.getRanges().scrollRight(true)) - { - break; - } - } - + av.getRanges().scrollToVisible(seqCanvas.cursorX, seqCanvas.cursorY, + av); } setStatusMessage(av.getAlignment().getSequenceAt(seqCanvas.cursorY), seqCanvas.cursorX, seqCanvas.cursorY); diff --git a/src/jalview/viewmodel/ViewportRanges.java b/src/jalview/viewmodel/ViewportRanges.java index 0583a8d..15f5023 100644 --- a/src/jalview/viewmodel/ViewportRanges.java +++ b/src/jalview/viewmodel/ViewportRanges.java @@ -20,6 +20,7 @@ */ package jalview.viewmodel; +import jalview.api.AlignViewportI; import jalview.datamodel.AlignmentI; /** @@ -389,4 +390,33 @@ public class ViewportRanges extends ViewportProperties setStartRes((res / width) * width); } + // pass av here until hidden columns JAL-2388 merged, then use alignment + // instead + public void scrollToVisible(int x, int y, AlignViewportI av) + { + while (y < startSeq) + { + scrollUp(true); + } + while (y + 1 > endSeq) + { + scrollUp(false); + } + + while (x < av.getColumnSelection().adjustForHiddenColumns(startRes)) + { + if (!scrollRight(false)) + { + break; + } + } + while (x > av.getColumnSelection().adjustForHiddenColumns(endRes)) + { + if (!scrollRight(true)) + { + break; + } + } + } + } -- 1.7.10.2