X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignmentPanel.java;fp=src%2Fjalview%2Fappletgui%2FAlignmentPanel.java;h=e97c3477ede9263991a78a067a3ad87ee902b510;hb=9098789d536725881086f20aba4d430edfc148a7;hp=813ab84753593307045e62171ed08c9fc542f080;hpb=807cb3673fd8e34f4305e290e053c3d71fd773ee;p=jalview.git diff --git a/src/jalview/appletgui/AlignmentPanel.java b/src/jalview/appletgui/AlignmentPanel.java index 813ab84..e97c347 100644 --- a/src/jalview/appletgui/AlignmentPanel.java +++ b/src/jalview/appletgui/AlignmentPanel.java @@ -25,7 +25,7 @@ import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; import jalview.bin.JalviewLite; import jalview.datamodel.AlignmentI; -import jalview.datamodel.SearchResults; +import jalview.datamodel.SearchResultsI; import jalview.datamodel.SequenceI; import jalview.structure.StructureSelectionManager; @@ -293,7 +293,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * Highlight the given results on the alignment. * */ - public void highlightSearchResults(SearchResults results) + public void highlightSearchResults(SearchResultsI results) { scrollToPosition(results); seqPanel.seqCanvas.highlightSearchResults(results); @@ -306,7 +306,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * @param results * @return false if results were not found */ - public boolean scrollToPosition(SearchResults results) + public boolean scrollToPosition(SearchResultsI results) { return scrollToPosition(results, true); } @@ -320,10 +320,10 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * - when set, the overview will be recalculated (takes longer) * @return false if results were not found */ - public boolean scrollToPosition(SearchResults results, + public boolean scrollToPosition(SearchResultsI results, boolean redrawOverview) { - return scrollToPosition(results, redrawOverview, false); + return scrollToPosition(results, 0, redrawOverview, false); } /** @@ -335,7 +335,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * - when set, the overview will be recalculated (takes longer) * @return false if results were not found */ - public boolean scrollToPosition(SearchResults results, + public boolean scrollToPosition(SearchResultsI results, + int verticalOffset, boolean redrawOverview, boolean centre) { // do we need to scroll the panel? @@ -347,6 +348,10 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, { return false; } + /* + * allow for offset of target sequence (actually scroll to one above it) + */ + SequenceI seq = alignment.getSequenceAt(seqIndex); int[] r = results.getResults(seq, 0, alignment.getWidth()); if (r == null) @@ -391,6 +396,11 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, { return false; } + + /* + * allow for offset of target sequence (actually scroll to one above it) + */ + seqIndex = Math.max(0, seqIndex - verticalOffset); return scrollTo(start, end, seqIndex, false, redrawOverview); } return true; @@ -419,6 +429,7 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, { start = ostart; } + if (!av.getWrapAlignment()) { /* @@ -902,14 +913,14 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * @param seqOffset * the number of visible sequences to show above the mapped region */ - protected void scrollToCentre(SearchResults sr, int seqOffset) + protected void scrollToCentre(SearchResultsI sr, int seqOffset) { /* * To avoid jumpy vertical scrolling (if some sequences are gapped or not * mapped), we can make the scroll-to location a sequence above the one * actually mapped. */ - SequenceI mappedTo = sr.getResultSequence(0); + SequenceI mappedTo = sr.getResults().get(0).getSequence(); List seqs = av.getAlignment().getSequences(); /* @@ -931,16 +942,14 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, { return; // failsafe, shouldn't happen } - sequenceIndex = Math.max(0, sequenceIndex - seqOffset); - sr.getResults().get(0) - .setSequence(av.getAlignment().getSequenceAt(sequenceIndex)); /* * Scroll to position but centring the target residue. Also set a state flag * to prevent adjustmentValueChanged performing this recursively. */ setFollowingComplementScroll(true); - scrollToPosition(sr, true, true); + // this should be scrollToPosition(sr,verticalOffset, + scrollToPosition(sr, seqOffset, true, true); } private void sendViewPosition()