showqual, showcons never used
[jalview.git] / src / jalview / gui / AnnotationPanel.java
index 497fc2a..844c1ab 100755 (executable)
@@ -49,6 +49,7 @@ public class AnnotationPanel extends JPanel implements MouseListener,
     AlignmentPanel ap;\r
     int activeRow = -1;\r
     BufferedImage image;\r
+    BufferedImage fadedImage;\r
     Graphics2D gg;\r
     FontMetrics fm;\r
     int imgWidth = 0;\r
@@ -314,7 +315,7 @@ public class AnnotationPanel extends JPanel implements MouseListener,
         }\r
 \r
 \r
-        if (SwingUtilities.isRightMouseButton(evt))\r
+        if (SwingUtilities.isRightMouseButton(evt) && activeRow!=-1)\r
         {\r
             if (av.getColumnSelection() == null)\r
             {\r
@@ -587,6 +588,8 @@ public class AnnotationPanel extends JPanel implements MouseListener,
 \r
         gg.setFont(av.getFont());\r
         fm = gg.getFontMetrics();\r
+        gg.setColor(Color.white);\r
+        gg.fillRect(0, 0, imgWidth, image.getHeight());\r
       }\r
 \r
 \r
@@ -601,9 +604,12 @@ public class AnnotationPanel extends JPanel implements MouseListener,
      */\r
     public void fastPaint(int horizontal)\r
     {\r
-        if ((horizontal == 0) || gg==null ||\r
-                (av.alignment.getAlignmentAnnotation() == null) ||\r
-                (av.alignment.getAlignmentAnnotation().length < 1))\r
+        if ((horizontal == 0)\r
+            || gg==null\r
+            || av.alignment.getAlignmentAnnotation()==null\r
+            || av.alignment.getAlignmentAnnotation().length < 1\r
+            || av.updatingConsensus\r
+            || av.updatingConservation)\r
         {\r
             repaint();\r
             return;\r
@@ -646,14 +652,45 @@ public class AnnotationPanel extends JPanel implements MouseListener,
      */\r
     public void drawComponent(Graphics g, int startRes, int endRes)\r
     {\r
-      g.setFont(av.getFont());\r
+      if(av.updatingConsensus || av.updatingConservation)\r
+      {\r
+        //We'll keep a record of the old image,\r
+        //and draw a faded image until the calculation\r
+        //has completed\r
+        if(fadedImage==null\r
+           || fadedImage.getWidth()!=imgWidth\r
+        || fadedImage.getHeight()!=image.getHeight())\r
+        {\r
+          fadedImage = new BufferedImage(\r
+              imgWidth, image.getHeight(),\r
+              BufferedImage.TYPE_INT_RGB);\r
+\r
+          Graphics2D fadedG = (Graphics2D) fadedImage.getGraphics();\r
+\r
+          fadedG.setColor(Color.white);\r
+        fadedG.fillRect(0, 0, imgWidth, image.getHeight());\r
+\r
+          fadedG.setComposite(\r
+              AlphaComposite.getInstance(\r
+                  AlphaComposite.SRC_OVER, .3f));\r
+          fadedG.drawImage(image, 0, 0, this);\r
+\r
+        }\r
 \r
+      }\r
+      else\r
+        fadedImage = null;\r
+\r
+\r
+      g.setColor(Color.white);\r
+      g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());\r
+\r
+      g.setFont(av.getFont());\r
       if (fm == null)\r
         fm = g.getFontMetrics();\r
 \r
 \r
-        g.setColor(Color.white);\r
-        g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());\r
+\r
 \r
         if ( (av.alignment.getAlignmentAnnotation() == null) ||\r
                 (av.alignment.getAlignmentAnnotation().length < 1))\r
@@ -667,6 +704,7 @@ public class AnnotationPanel extends JPanel implements MouseListener,
             return;\r
         }\r
 \r
+\r
         AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
 \r
         int x = 0, y = 0;\r
@@ -689,6 +727,7 @@ public class AnnotationPanel extends JPanel implements MouseListener,
                 continue;\r
             }\r
 \r
+\r
             lastSS = ' ';\r
             lastSSX = 0;\r
 \r
@@ -706,6 +745,45 @@ public class AnnotationPanel extends JPanel implements MouseListener,
                 }\r
             }\r
 \r
+            if (av.updatingConsensus && aa[i].label.equals("Consensus"))\r
+            {\r
+              y += av.charHeight;\r
+\r
+              g.drawImage(fadedImage,\r
+              0,y-row.height,imgWidth, y,\r
+              0,y-row.height,imgWidth, y, this);\r
+              g.setColor(Color.black);\r
+             // g.drawString("Calculating Consensus....",20, y-row.height/2);\r
+\r
+              continue;\r
+            }\r
+            else if (av.updatingConservation && aa[i].label.equals("Conservation"))\r
+            {\r
+\r
+              y += av.charHeight;\r
+              g.drawImage(fadedImage,\r
+                          0, y - row.height, imgWidth, y,\r
+                          0, y - row.height, imgWidth, y, this);\r
+\r
+              g.setColor(Color.black);\r
+            //  g.drawString("Calculating Conservation.....",20, y-row.height/2);\r
+\r
+              continue;\r
+            }\r
+            else if (av.updatingConservation && aa[i].label.equals("Quality"))\r
+            {\r
+\r
+              y += av.charHeight;\r
+              g.drawImage(fadedImage,\r
+                          0, y - row.height, imgWidth, y,\r
+                          0, y - row.height, imgWidth, y, this);\r
+              g.setColor(Color.black);\r
+             /// g.drawString("Calculating Quality....",20, y-row.height/2);\r
+\r
+              continue;\r
+            }\r
+\r
+\r
             if (row.hasText)\r
             {\r
                 iconOffset = av.charHeight / 2 + 4;\r
@@ -1168,13 +1246,16 @@ public class AnnotationPanel extends JPanel implements MouseListener,
 \r
       for (int j = sRes; j < eRes; j++)\r
       {\r
+        if (aa.annotations[j] != null)\r
+        {\r
           g.setColor(aa.annotations[j].colour);\r
 \r
-          height = (int) ((aa.annotations[j].value / aa.graphMax) * y);\r
-          if(height>y)\r
+          height = (int) ( (aa.annotations[j].value / aa.graphMax) * y);\r
+          if (height > y)\r
             height = y;\r
 \r
           g.fillRect(x, y - height, av.charWidth, height);\r
+        }\r
           x += av.charWidth;\r
       }\r
     }\r