X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignmentPanel.java;h=e402b9b3606a9d998745a88db13cf707c08f768b;hb=refs%2Fheads%2Fbug%2FJAL-2491;hp=c3458f9e9d3406c4c54154e9cfadb9ff80b4a599;hpb=14033157f9235c071763ae61cb8d2785b07ec96f;p=jalview.git diff --git a/src/jalview/appletgui/AlignmentPanel.java b/src/jalview/appletgui/AlignmentPanel.java index c3458f9..e402b9b 100644 --- a/src/jalview/appletgui/AlignmentPanel.java +++ b/src/jalview/appletgui/AlignmentPanel.java @@ -407,7 +407,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, { int offset = (vpRanges.getEndRes() - vpRanges.getStartRes() + 1) / 2 - 1; start = Math.max(start - offset, 0); - end = Math.min(end + offset, seq.getEnd() - 1); + end = end + offset - 1; + // end = Math.min(end + offset, seq.getEnd() - 1); } if (start < 0) @@ -436,11 +437,12 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, int start = -1; if (av.hasHiddenColumns()) { - start = av.getColumnSelection().findColumnPosition(ostart); - end = av.getColumnSelection().findColumnPosition(end); + AlignmentI al = av.getAlignment(); + start = al.getHiddenColumns().findColumnPosition(ostart); + end = al.getHiddenColumns().findColumnPosition(end); if (start == end) { - if (!scrollToNearest && !av.getColumnSelection().isVisible(ostart)) + if (!scrollToNearest && !al.getHiddenColumns().isVisible(ostart)) { // don't scroll - position isn't visible return false; @@ -673,21 +675,24 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, int vextent = 0; - public void setScrollValues(int x, int y) + public void setScrollValues(int xpos, int ypos) { + int x = xpos; + int y = ypos; + if (av.getWrapAlignment()) { setScrollingForWrappedPanel(x); } else { - int width = av.getAlignment().getWidth(); int height = av.getAlignment().getHeight(); if (av.hasHiddenColumns()) { - width = av.getColumnSelection().findColumnPosition(width); + width = av.getAlignment().getHiddenColumns() + .findColumnPosition(width); } if (x < 0) { @@ -742,9 +747,20 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, } } + /** + * Respond to adjustment event when horizontal or vertical scrollbar is + * changed + * + * @param evt + * adjustment event encoding whether apvscroll, hscroll or vscroll + * changed + */ @Override public void adjustmentValueChanged(AdjustmentEvent evt) { + // Note that this event is NOT fired by the AWT scrollbar when setValues is + // called. Instead manually call adjustHorizontal and adjustVertical + // directly. if (evt == null || evt.getSource() == apvscroll) { annotationPanel.setScrollOffset(apvscroll.getValue(), false); @@ -896,8 +912,6 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, * Scroll to position but centring the target residue. Also set a state flag * to prevent adjustmentValueChanged performing this recursively. */ - // setFollowingComplementScroll(true); - // this should be scrollToPosition(sr,verticalOffset, scrollToPosition(sr, seqOffset, true, true); } @@ -979,7 +993,8 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, int maxwidth = av.getAlignment().getWidth(); if (av.hasHiddenColumns()) { - maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1; + maxwidth = av.getAlignment().getHiddenColumns() + .findColumnPosition(maxwidth) - 1; } // get the width of the canvas in residues @@ -1138,6 +1153,11 @@ public class AlignmentPanel extends Panel implements AdjustmentListener, this.scrollComplementaryPanel = b; } + /** + * Get whether to scroll complement panel + * + * @return true if cDNA/protein complement panels should be scrolled + */ protected boolean isSetToScrollComplementPanel() { return this.scrollComplementaryPanel;