From 6df80899bb3100cd38064c62cda5a2bb85b4528d Mon Sep 17 00:00:00 2001 From: amwaterhouse Date: Fri, 26 Aug 2005 15:29:20 +0000 Subject: [PATCH] Create new image only on resize, set fontMetrics on new image --- src/jalview/gui/AnnotationPanel.java | 48 ++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/src/jalview/gui/AnnotationPanel.java b/src/jalview/gui/AnnotationPanel.java index 4d3fc0f..4f984fd 100755 --- a/src/jalview/gui/AnnotationPanel.java +++ b/src/jalview/gui/AnnotationPanel.java @@ -519,29 +519,38 @@ public class AnnotationPanel extends JPanel implements MouseListener, */ public void paintComponent(Graphics g) { - g.setColor(Color.white); - g.fillRect(0, 0, getWidth(), getHeight()); + g.setColor(Color.white); + g.fillRect(0, 0, getWidth(), getHeight()); - if (fastPaint) - { - g.drawImage(image, 0, 0, this); - fastPaint = false; + if (fastPaint) + { + g.drawImage(image, 0, 0, this); + fastPaint = false; + return; + } - return; - } + imgWidth = (av.endRes - av.startRes + 1) * av.charWidth; - imgWidth = (av.endRes - av.startRes + 1) * av.charWidth; + if (image != null && imgWidth == image.getWidth()) + { + //This will be called by a mouse over, tool tip etc + // no need to redraw whole image + g.drawImage(image, 0, 0, this); + fastPaint = false; + return; + } - image = new BufferedImage(imgWidth, ap.annotationPanel.getHeight(), - BufferedImage.TYPE_INT_RGB); - gg = (Graphics2D) image.getGraphics(); - gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + image = new BufferedImage(imgWidth, ap.annotationPanel.getHeight(), + BufferedImage.TYPE_INT_RGB); + gg = (Graphics2D) image.getGraphics(); + gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); - gg.setFont(av.getFont()); + gg.setFont(av.getFont()); + fm = gg.getFontMetrics(); - drawComponent(gg, av.startRes, av.endRes + 1); - g.drawImage(image, 0, 0, this); + drawComponent(gg, av.startRes, av.endRes + 1); + g.drawImage(image, 0, 0, this); } /** @@ -583,7 +592,9 @@ public class AnnotationPanel extends JPanel implements MouseListener, gg.translate(-transX, 0); fastPaint = true; + repaint(); + } /** @@ -595,9 +606,6 @@ public class AnnotationPanel extends JPanel implements MouseListener, */ public void drawComponent(Graphics2D g, int startRes, int endRes) { - if(fm==null) - fm = g.getFontMetrics(); - g.setColor(Color.white); g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight()); -- 1.7.10.2