X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignmentPanel.java;h=1296829e7891545125ea4665cc0e029a70792c31;hb=2c6965c96b057296981403f3394a4c180ed60ea4;hp=c2bdaf0105391f3c74893a236fb5b94e4d0c078f;hpb=506d60f0e188723ddc91c26824b41ac7034df3fe;p=jalview.git diff --git a/src/jalview/appletgui/AlignmentPanel.java b/src/jalview/appletgui/AlignmentPanel.java index c2bdaf0..1296829 100755 --- a/src/jalview/appletgui/AlignmentPanel.java +++ b/src/jalview/appletgui/AlignmentPanel.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) - * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.5) + * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.appletgui; @@ -228,15 +227,40 @@ public class AlignmentPanel extends Panel implements AdjustmentListener public void highlightSearchResults(SearchResults results) { seqPanel.seqCanvas.highlightSearchResults(results); + } + /** + * scroll the view to show the position of the highlighted region in results + * (if any) + * + * @param results + */ + public void scrollToPosition(SearchResults results) + { // do we need to scroll the panel? - if (results != null) + if (results != null && results.getSize() > 0) { - SequenceI seq = results.getResultSequence(0); - int seqIndex = av.alignment.findIndex(seq); - int start = seq.findIndex(results.getResultStart(0)) - 1; - int end = seq.findIndex(results.getResultEnd(0)) - 1; - + int seqIndex = av.alignment.findIndex(results); + if (seqIndex == -1) + { + return; + } + SequenceI seq = av.alignment.getSequenceAt(seqIndex); + int[] r = results.getResults(seq, seq.getStart(), seq.getEnd()); + if (r == null) + { + return; + } + int start = r[0]; + int end = r[1]; + if (start < 0) + { + return; + } + if (end == seq.getEnd()) + { + return; + } if (!av.wrapAlignment) { if ((av.getStartRes() > end)