JAL-4250 Fixed blue arrows in drawStemAnnot()
authorBen Soares <b.soares@dundee.ac.uk>
Sat, 16 Sep 2023 20:14:42 +0000 (21:14 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Sat, 16 Sep 2023 20:14:42 +0000 (21:14 +0100)
src/jalview/renderer/AnnotationRenderer.java

index d943d39..be65eb7 100644 (file)
@@ -175,7 +175,6 @@ public class AnnotationRenderer
           int x, int y, int iconOffset, int startRes, int column,
           boolean validRes, boolean validEnd)
   {
-    g.setColor(STEM_COLOUR);
     int sCol = (lastSSX / charWidth)
             + hiddenColumns.visibleToAbsoluteColumn(startRes);
     int x1 = lastSSX;
@@ -190,6 +189,13 @@ public class AnnotationRenderer
             || row_annotations[column] == null
             || dc != row_annotations[column].secondaryStructure;
 
+    if (diffupstream || diffdownstream)
+    {
+      // draw glyphline under arrow
+      drawGlyphLine(g, lastSSX, x, y, iconOffset);
+    }
+    g.setColor(STEM_COLOUR);
+
     if (column > 0 && Rna.isClosingParenthesis(dc))
     {
       if (diffupstream)
@@ -202,7 +208,8 @@ public class AnnotationRenderer
          */
         fillPolygon(g, new int[] { lastSSX + 5, lastSSX + 5, lastSSX },
                 new int[]
-                { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+                { y + iconOffset + 1, y + 13 + iconOffset,
+                    y + 7 + iconOffset },
                 3);
         x1 += 5;
       }
@@ -220,9 +227,10 @@ public class AnnotationRenderer
          * if annotation ending with an opeing base pair half of the stem, 
          * display a forward arrow
          */
-        fillPolygon(g, new int[] { x2 - 5, x2 - 5, x2 },
+        fillPolygon(g, new int[] { x2 - 6, x2 - 6, x2 - 1 },
                 new int[]
-                { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset },
+                { y + iconOffset + 1, y + 13 + iconOffset,
+                    y + 7 + iconOffset },
                 3);
         x2 -= 5;
       }
@@ -232,7 +240,8 @@ public class AnnotationRenderer
       }
     }
     // draw arrow body
-    fillRect(g, x1, y + 4 + iconOffset, x2 - x1, 7);
+    unsetAntialias(g);
+    fillRect(g, x1, y + 4 + iconOffset, x2 - x1, 6);
   }
 
   void drawNotCanonicalAnnot(Graphics g, Color nonCanColor,
@@ -1267,7 +1276,6 @@ public class AnnotationRenderer
       }
       else
       {
-        // g.setColor(Color.orange);
         fillRoundRect(g, lastSSX, y + 3 + iconOffset, x2 - x1 - ofs, 8, 0,
                 0);
       }
@@ -1278,7 +1286,6 @@ public class AnnotationRenderer
       }
       else
       {
-        // g.setColor(Color.magenta);
         fillRoundRect(g, lastSSX + ofs, y + 3 + iconOffset, x2 - x1 - ofs,
                 8, 0, 0);
       }