fastPaint flag added
authoramwaterhouse <Andrew Waterhouse>
Thu, 7 Apr 2005 11:34:45 +0000 (11:34 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 7 Apr 2005 11:34:45 +0000 (11:34 +0000)
src/jalview/gui/AnnotationPanel.java
src/jalview/gui/IdCanvas.java
src/jalview/gui/SeqCanvas.java

index 5c6bcf4..f14b199 100755 (executable)
@@ -29,6 +29,7 @@ public class AnnotationPanel extends JPanel implements MouseListener, MouseMotio
   FontMetrics fm;\r
   int imgWidth=0;\r
 \r
+  boolean fastPaint = false;\r
 \r
 \r
 \r
@@ -320,6 +321,13 @@ public class AnnotationPanel extends JPanel implements MouseListener, MouseMotio
     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
     imgWidth = (av.endRes-av.startRes+1) *av.charWidth;\r
 \r
     image = new BufferedImage(imgWidth,\r
@@ -366,7 +374,8 @@ public class AnnotationPanel extends JPanel implements MouseListener, MouseMotio
 \r
   gg.translate( -transX, 0 );\r
 \r
-  getGraphics().drawImage(image, 0, 0, this);\r
+  fastPaint = true;\r
+  repaint();\r
 }\r
 \r
 \r
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
index ff9488e..c6ecff2 100755 (executable)
@@ -16,7 +16,7 @@ public class SeqCanvas extends JPanel
 \r
     AlignViewport     av;\r
 \r
-    public boolean paintFlag = false;\r
+ //   public boolean paintFlag = false;\r
 \r
     boolean showScores = false;\r
     boolean displaySearch = false;\r
@@ -25,6 +25,8 @@ public class SeqCanvas extends JPanel
     int chunkHeight;\r
     int chunkWidth;\r
 \r
+    boolean fastPaint = false;\r
+\r
 \r
     public SeqCanvas(AlignViewport av)\r
     {\r
@@ -58,12 +60,6 @@ public void fastPaint(int horizontal, int vertical)
     if (horizontal == 0 && vertical == 0)\r
       return;\r
 \r
-    if (img == null || paintFlag)\r
-    {\r
-      repaint();\r
-      return;\r
-    }\r
-\r
     gg.copyArea(0, 0, imgWidth, imgHeight, -horizontal * av.charWidth,\r
                 -vertical * av.charHeight);\r
 \r
@@ -90,7 +86,9 @@ public void fastPaint(int horizontal, int vertical)
     drawPanel(gg, sr, er, ss, es, sr, ss, 0);\r
 \r
     gg.translate( -transX, -transY);\r
-    getGraphics().drawImage(img, 0, 0, this);\r
+\r
+    fastPaint = true;\r
+    repaint();\r
 \r
 }\r
 \r
@@ -107,6 +105,16 @@ public void fastPaint(int horizontal, int vertical)
 \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(img, 0, 0, this);\r
+      fastPaint = false;\r
+      return;\r
+    }\r
+\r
     // this draws the whole of the alignment\r
       imgWidth  = getWidth();\r
       imgHeight = getHeight();\r
@@ -118,7 +126,6 @@ public void fastPaint(int horizontal, int vertical)
       gg  = (Graphics2D)img.getGraphics();\r
       gg.setFont(av.getFont());\r
       gg.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);\r
-      paintFlag = false;\r
 \r
       gg.setColor(Color.white);\r
       gg.fillRect(0,0,imgWidth,imgHeight);\r
@@ -135,9 +142,7 @@ public void fastPaint(int horizontal, int vertical)
     else\r
       drawPanel(gg, av.startRes, av.endRes, av.startSeq, av.endSeq, av.startRes, av.startSeq, 0);\r
 \r
-    g.setColor(Color.white);\r
-    g.fillRect(0,0,getWidth(),getHeight());\r
-    g.drawImage(img,0,0,this);\r
+    g.drawImage(img, 0, 0, this);\r
 \r
   }\r
 \r
@@ -259,7 +264,7 @@ public void fastPaint(int horizontal, int vertical)
 \r
             if (bottom == -1 &&\r
                 !group.sequences.contains(av.alignment.getSequenceAt(i + 1)))\r
-              bottom = sy + av.charHeight - 1;\r
+              bottom = sy + av.charHeight -1;\r
 \r
             if (!inGroup)\r
             {\r
@@ -364,7 +369,6 @@ public void fastPaint(int horizontal, int vertical)
 \r
     searchResults = results;\r
 \r
-    paintFlag = true;\r
     repaint();\r
   }\r
 \r