fastPaint flag added
[jalview.git] / src / jalview / gui / IdCanvas.java
index cb7fddf..959c83c 100755 (executable)
@@ -17,6 +17,7 @@ public class IdCanvas extends JPanel
   BufferedImage image;\r
   Graphics2D gg;\r
   int imgHeight=0;\r
+  boolean fastPaint = false;\r
 \r
   public IdCanvas(AlignViewport av)\r
   {\r
@@ -49,11 +50,8 @@ public class IdCanvas extends JPanel
 \r
   public void fastPaint(int vertical)\r
   {\r
-    if(image==null)\r
-    {\r
-      repaint();\r
-      return;\r
-    }\r
+    if(gg==null)\r
+    {  repaint(); return;}\r
 \r
     gg.copyArea( 0,0, getWidth(), imgHeight, 0, -vertical*av.charHeight );\r
 \r
@@ -75,11 +73,22 @@ public class IdCanvas extends JPanel
         gg.translate( 0, -transY );\r
 \r
 \r
-    getGraphics().drawImage(image, 0, 0, this);\r
+      fastPaint = true;\r
+      repaint();\r
   }\r
 \r
   public void paintComponent(Graphics g)\r
   {\r
+    g.setColor(Color.white);\r
+    g.fillRect(0, 0, getWidth(), getHeight());\r
+\r
+    if (fastPaint)\r
+    {\r
+      g.drawImage(image, 0, 0, this);\r
+      fastPaint = false;\r
+      return;\r
+    }\r
+\r
     imgHeight = getHeight();\r
     imgHeight -= imgHeight % av.charHeight;\r
     image = new BufferedImage(getWidth(), imgHeight, BufferedImage.TYPE_INT_RGB);\r
@@ -93,10 +102,6 @@ public class IdCanvas extends JPanel
                            av.getFont().getSize());\r
     gg.setFont(italic);\r
 \r
-\r
-    g.setColor(Color.white);\r
-    g.fillRect(0,0,getWidth(),getHeight());\r
-\r
     drawIds( av.getStartSeq(), av.endSeq);\r
 \r
     g.drawImage(image, 0, 0, this);\r