getCharwidth directly
[jalview.git] / src / jalview / gui / FeatureRenderer.java
index 6e38f1b..fc31fdf 100755 (executable)
@@ -27,11 +27,17 @@ public class FeatureRenderer implements RendererI
     while( e.hasMoreElements() )\r
     {\r
       SequenceFeature sf = (SequenceFeature)e.nextElement();\r
+      if(sf.getStart()>seq.getEnd())\r
+        continue;\r
+\r
       int fstart = seq.findIndex(sf.getStart())-1;\r
       int fend = seq.findIndex(sf.getEnd())-1;\r
 \r
-      if(    (fstart>=start&&fstart<=end) || (fend>=start&&fend<=end))\r
+      if(   (fstart<=end && fend>=start)  )\r
       {\r
+        if(fstart<0) // fix for if the feature we have starts before the sequence start,\r
+          fstart = 0;// but the feature end is still valid!!\r
+\r
         if(fstart==fend)\r
         {\r
           g.setColor(Color.red);\r
@@ -49,18 +55,21 @@ public class FeatureRenderer implements RendererI
         {\r
           for (int i = fstart; i <= fend; i++)\r
           {\r
+            char s = seq.getSequence().charAt(i);\r
+            if( jalview.util.Comparison.isGap(s) )\r
+              continue;\r
+\r
             g.setColor(Color.blue);\r
             g.fillRect( (i-start) * width, y1, width, height);\r
 \r
             g.setColor(Color.white);\r
-            char s = seq.getSequence().charAt(i);\r
+\r
             FontMetrics fm = g.getFontMetrics();\r
             int charOffset = (width - fm.charWidth(s)) / 2;\r
             int pady = height / 5;\r
             g.drawString(String.valueOf(s),\r
                          charOffset + x1 + width * (i-start),\r
                          y1 + height - pady);\r
-\r
           }\r
         }\r
       }\r