X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignmentPanel.java;h=75729c330775e2b93ab5067126233e926b726e18;hb=24efbd38f2c3dceaf6d3e305eef41ba0b0c9ebdc;hp=04b596a0aea36d7f200b1e8c69bdf3c499ef59d9;hpb=4532dfefeac026198bfea1b9dbe84186e870bfc8;p=jalview.git diff --git a/src/jalview/gui/AlignmentPanel.java b/src/jalview/gui/AlignmentPanel.java index 04b596a..75729c3 100755 --- a/src/jalview/gui/AlignmentPanel.java +++ b/src/jalview/gui/AlignmentPanel.java @@ -27,6 +27,9 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene AnnotationPanel annotationPanel; AnnotationLabels alabels; + // this value is set false when selection area being dragged + boolean fastPaint = true; + public AlignmentPanel(AlignFrame af, final AlignViewport av) { alignFrame = af; @@ -203,6 +206,8 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene scalePanelHolder.setVisible(!wrap); hscroll.setVisible(!wrap); idwidthAdjuster.setVisible(!wrap); + + av.setShowAnnotation(!wrap); annotationScroller.setVisible(!wrap); annotationSpaceFillerHolder.setVisible(!wrap); idSpaceFillerPanel1.setVisible(!wrap); @@ -272,34 +277,40 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene { if(vscroll.getValue()<1) return false; + fastPaint = false; vscroll.setValue(vscroll.getValue() - 1); } else { if(vextent+vscroll.getValue() >= av.getAlignment().getHeight()) return false; + fastPaint = false; vscroll.setValue(vscroll.getValue() + 1); } + fastPaint = true; return true; } public boolean scrollRight(boolean right) { - if(right) - { - if(hscroll.getValue()<1) - return false; - hscroll.setValue(hscroll.getValue() - 1); - } - else - { - if(hextent+hscroll.getValue() >= av.getAlignment().getWidth()) - return false; - hscroll.setValue(hscroll.getValue() + 1); - } - return true; - } + if (right) + { + if (hscroll.getValue() < 1) + return false; + fastPaint = false; + hscroll.setValue(hscroll.getValue() - 1); + } + else + { + if (hextent + hscroll.getValue() >= av.getAlignment().getWidth()) + return false; + fastPaint = false; + hscroll.setValue(hscroll.getValue() + 1); + } + fastPaint = true; + return true; + } public void setScrollValues(int x, int y) @@ -360,10 +371,17 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene if(overviewPanel!=null) overviewPanel.setBoxPosition(); - seqPanel.seqCanvas.fastPaint(av.getStartRes()-oldX, av.getStartSeq()-oldY); - idPanel.idCanvas.fastPaint( av.getStartSeq()-oldY ); - scalePanel.repaint(); - annotationPanel.fastPaint(av.getStartRes()-oldX); + if(av.getWrapAlignment() || !fastPaint) + repaint(); + else + { + seqPanel.seqCanvas.fastPaint(av.getStartRes() - oldX, + av.getStartSeq() - oldY); + idPanel.idCanvas.fastPaint(av.getStartSeq() - oldY); + scalePanel.repaint(); + if (av.getShowAnnotation()) + annotationPanel.fastPaint(av.getStartRes() - oldX); + } } @@ -454,9 +472,17 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene // draw main sequence panel pg.translate(idWidth,0); - pg.setClip(0,0,pwidth-idWidth, pheight); seqPanel.seqCanvas.drawPanel(pg,startRes,endRes,startSeq,endSeq,startRes,startSeq,0); + + if(av.getShowAnnotation()) + { + pg.translate(-idWidth,(endSeq-startSeq)*av.charHeight); + alabels.drawComponent((Graphics2D)pg); + pg.translate(idWidth,0); + annotationPanel.drawComponent((Graphics2D) pg, startRes, endRes+1); + } + return Printable.PAGE_EXISTS; } @@ -530,6 +556,10 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene height = (av.alignment.getHeight()+1) * av.charHeight + 30; width = idPanel.getWidth() + av.alignment.getWidth() * av.charWidth; } + if(av.getShowAnnotation()) + { + height += annotationPanel.getPreferredSize().height; + } try { @@ -573,7 +603,13 @@ public class AlignmentPanel extends GAlignmentPanel implements AdjustmentListene width = idPanel.getWidth() + av.alignment.getWidth() * av.charWidth; } + if(av.getShowAnnotation()) + { + height += annotationPanel.getPreferredSize().height; + } + +System.out.println(width +" "+height); try {