hscroll.setVisible(!wrap);\r
idwidthAdjuster.setVisible(!wrap);\r
\r
- av.setShowAnnotation(!wrap);\r
- annotationScroller.setVisible(!wrap);\r
- annotationSpaceFillerHolder.setVisible(!wrap);\r
- idSpaceFillerPanel1.setVisible(!wrap);\r
+ if(wrap)\r
+ {\r
+ annotationScroller.setVisible(false);\r
+ annotationSpaceFillerHolder.setVisible(false);\r
+ }\r
+ else if(av.showAnnotation)\r
+ {\r
+ annotationScroller.setVisible(true);\r
+ annotationSpaceFillerHolder.setVisible(true);\r
+ }\r
+\r
+ idSpaceFillerPanel1.setVisible(!wrap);\r
\r
repaint();\r
}\r
*/\r
public void adjustmentValueChanged(AdjustmentEvent evt)\r
{\r
+\r
int oldX = av.getStartRes();\r
int oldY = av.getStartSeq();\r
\r
overviewPanel.setBoxPosition();\r
}\r
\r
- if (av.getWrapAlignment() || !fastPaint)\r
+ int xShift = av.getStartRes() - oldX;\r
+ int yShift = av.getStartSeq() - oldY;\r
+\r
+ if ( (xShift == 0 && yShift == 0) ||\r
+ (Math.abs(xShift) > av.getEndRes() - av.getStartRes()\r
+ || Math.abs(yShift) > av.getEndSeq() - av.getStartSeq())\r
+ || av.getWrapAlignment()\r
+ || !fastPaint)\r
{\r
- repaint();\r
+ // Either no shift at all, or shift greater than visible amount\r
+ repaint();\r
}\r
else\r
{\r
- idPanel.idCanvas.fastPaint(av.getStartSeq() - oldY);\r
- seqPanel.seqCanvas.fastPaint(av.getStartRes() - oldX,\r
- av.getStartSeq() - oldY);\r
+ idPanel.idCanvas.fastPaint(yShift);\r
+ seqPanel.seqCanvas.fastPaint(xShift, yShift);\r
\r
scalePanel.repaint();\r
\r
if (av.getShowAnnotation())\r
{\r
- annotationPanel.fastPaint(av.getStartRes() - oldX);\r
+ annotationPanel.fastPaint(xShift);\r
}\r
}\r
}\r