From 5ec1087f3f500339cbcba33e604164cb828a9cd8 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 19 Jun 2009 09:56:12 +0000 Subject: [PATCH] smoother scroll-to-position action --- src/jalview/gui/AlignmentPanel.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 608d29f..17a24f6 100755 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -248,6 +248,7 @@ public class AlignmentPanel extends GAlignmentPanel implements * @return false if results were not found */ public boolean scrollToPosition(SearchResults results, boolean redrawOverview) { + int startv,endv,starts,ends,width; // TODO: properly locate search results in view when large numbers of hidden columns exist before highlighted region // do we need to scroll the panel? // TODO: tons of nullpointereexceptions raised here. @@ -261,6 +262,7 @@ public class AlignmentPanel extends GAlignmentPanel implements SequenceI seq = av.alignment.getSequenceAt(seqIndex); int [] r = results.getResults(seq, 0, av.alignment.getWidth()); // results.getResults(seq, seq.getStart(), seq.getEnd()); + // TODO: VAMSAS: fix hidden column issue where scroll to left from C terminus is not visible if (r==null) { return false; @@ -277,13 +279,18 @@ public class AlignmentPanel extends GAlignmentPanel implements } if (!av.wrapAlignment) { - if ((av.getStartRes() >= start) - || (av.getEndRes() <= end)) + if ((startv=av.getStartRes()) >= start) { setScrollValues(start-1, seqIndex); - } else if ((av.getStartSeq() > seqIndex) || (av.getEndSeq() < seqIndex)) + } else if + ((endv=av.getEndRes()) <= end) { + setScrollValues(startv+1+end-endv, seqIndex); + } else if ((starts=av.getStartSeq()) > seqIndex) { setScrollValues(av.getStartRes(), seqIndex); + } else if ((ends=av.getEndSeq()) <= seqIndex) + { + setScrollValues(av.getStartRes(), starts+seqIndex-ends+1); } } else @@ -483,6 +490,7 @@ public class AlignmentPanel extends GAlignmentPanel implements */ public void setScrollValues(int x, int y) { +// System.err.println("Scroll to "+x+","+y); if (av==null || av.alignment==null) { return; -- 1.7.10.2