JAL-629 Now showing temp fac and secondary structure for File opened structures and...
[jalview.git] / src / jalview / renderer / AnnotationRenderer.java
index eb83f31..ad1fa4a 100644 (file)
  */
 package jalview.renderer;
 
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.geom.AffineTransform;
+import java.awt.image.ImageObserver;
+import java.util.BitSet;
+import java.util.Hashtable;
+
 import jalview.analysis.AAFrequency;
 import jalview.analysis.CodingUtils;
 import jalview.analysis.Rna;
@@ -38,18 +50,6 @@ import jalview.schemes.ResidueProperties;
 import jalview.schemes.ZappoColourScheme;
 import jalview.util.Platform;
 
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Graphics2D;
-import java.awt.Image;
-import java.awt.geom.AffineTransform;
-import java.awt.image.ImageObserver;
-import java.util.BitSet;
-import java.util.Hashtable;
-
 public class AnnotationRenderer
 {
   private static final int UPPER_TO_LOWER = 'a' - 'A'; // 32
@@ -1077,22 +1077,22 @@ public class AnnotationRenderer
                     .getRendererFor(row);
             if (renderer != null)
             {
-              renderer.renderRow(g, charWidth, charHeight,
-                      hasHiddenColumns, av, hiddenColumns, columnSelection,
-                      row, row_annotations, startRes, endRes, row.graphMin,
+              renderer.renderRow(g, charWidth, charHeight, hasHiddenColumns,
+                      av, hiddenColumns, columnSelection, row,
+                      row_annotations, startRes, endRes, row.graphMin,
                       row.graphMax, y);
             }
             if (debugRedraw)
             {
               if (renderer == null)
               {
-                System.err.println("No renderer found for "
-                        + row.toString());
+                System.err
+                        .println("No renderer found for " + row.toString());
               }
               else
               {
-                System.err.println("rendered with "
-                        + renderer.getClass().toString());
+                System.err.println(
+                        "rendered with " + renderer.getClass().toString());
               }
             }
 
@@ -1300,8 +1300,7 @@ public class AnnotationRenderer
         break;
       }
 
-      if (aa_annotations[column] == null
-              || aa_annotations[column - 1] == null)
+      if (aa_annotations[column] == null)
       {
         x++;
         continue;
@@ -1316,6 +1315,25 @@ public class AnnotationRenderer
         g.setColor(aa_annotations[column].colour);
       }
 
+      if (aa_annotations[column - 1] == null
+              && aa_annotations.length > column + 1
+              && aa_annotations[column + 1] == null)
+      {
+        // standalone value
+        y1 = y - (int) (((aa_annotations[column].value - min) / range)
+                * graphHeight);
+        g.drawLine(x * charWidth + charWidth / 4, y1,
+                x * charWidth + 3 * charWidth / 4, y1);
+        x++;
+        continue;
+      }
+
+      if (aa_annotations[column - 1] == null)
+      {
+        x++;
+        continue;
+      }
+
       y1 = y - (int) (((aa_annotations[column - 1].value - min) / range)
               * graphHeight);
       y2 = y - (int) (((aa_annotations[column].value - min) / range)