From b5314c58801cb255ba1e0d73f1bab834a6a0342d Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Thu, 8 Sep 2005 15:49:27 +0000 Subject: [PATCH] Optimise switch to fastPaint --- src/jalview/gui/AlignmentPanel.java | 36 +++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 19f50d0..fae6dfc 100755 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -304,10 +304,18 @@ public class AlignmentPanel extends GAlignmentPanel hscroll.setVisible(!wrap); idwidthAdjuster.setVisible(!wrap); - av.setShowAnnotation(!wrap); - annotationScroller.setVisible(!wrap); - annotationSpaceFillerHolder.setVisible(!wrap); - idSpaceFillerPanel1.setVisible(!wrap); + if(wrap) + { + annotationScroller.setVisible(false); + annotationSpaceFillerHolder.setVisible(false); + } + else if(av.showAnnotation) + { + annotationScroller.setVisible(true); + annotationSpaceFillerHolder.setVisible(true); + } + + idSpaceFillerPanel1.setVisible(!wrap); repaint(); } @@ -433,6 +441,7 @@ public class AlignmentPanel extends GAlignmentPanel */ public void adjustmentValueChanged(AdjustmentEvent evt) { + int oldX = av.getStartRes(); int oldY = av.getStartSeq(); @@ -467,21 +476,28 @@ public class AlignmentPanel extends GAlignmentPanel overviewPanel.setBoxPosition(); } - if (av.getWrapAlignment() || !fastPaint) + int xShift = av.getStartRes() - oldX; + int yShift = av.getStartSeq() - oldY; + + if ( (xShift == 0 && yShift == 0) || + (Math.abs(xShift) > av.getEndRes() - av.getStartRes() + || Math.abs(yShift) > av.getEndSeq() - av.getStartSeq()) + || av.getWrapAlignment() + || !fastPaint) { - repaint(); + // Either no shift at all, or shift greater than visible amount + repaint(); } else { - idPanel.idCanvas.fastPaint(av.getStartSeq() - oldY); - seqPanel.seqCanvas.fastPaint(av.getStartRes() - oldX, - av.getStartSeq() - oldY); + idPanel.idCanvas.fastPaint(yShift); + seqPanel.seqCanvas.fastPaint(xShift, yShift); scalePanel.repaint(); if (av.getShowAnnotation()) { - annotationPanel.fastPaint(av.getStartRes() - oldX); + annotationPanel.fastPaint(xShift); } } } -- 1.7.10.2