X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=fc31fdfe8b2139db0627b5b51a33c26320b67ccd;hb=77dbfda22963c908129cae7947643ad5fce0caad;hp=6e38f1b9eabfb7788d78e4ecba5547283e7b7224;hpb=22be3f466cd70cb03d5eae619ede8589ae69716a;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 6e38f1b..fc31fdf 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -27,11 +27,17 @@ public class FeatureRenderer implements RendererI while( e.hasMoreElements() ) { SequenceFeature sf = (SequenceFeature)e.nextElement(); + if(sf.getStart()>seq.getEnd()) + continue; + int fstart = seq.findIndex(sf.getStart())-1; int fend = seq.findIndex(sf.getEnd())-1; - if( (fstart>=start&&fstart<=end) || (fend>=start&&fend<=end)) + if( (fstart<=end && fend>=start) ) { + if(fstart<0) // fix for if the feature we have starts before the sequence start, + fstart = 0;// but the feature end is still valid!! + if(fstart==fend) { g.setColor(Color.red); @@ -49,18 +55,21 @@ public class FeatureRenderer implements RendererI { for (int i = fstart; i <= fend; i++) { + char s = seq.getSequence().charAt(i); + if( jalview.util.Comparison.isGap(s) ) + continue; + g.setColor(Color.blue); g.fillRect( (i-start) * width, y1, width, height); g.setColor(Color.white); - char s = seq.getSequence().charAt(i); + FontMetrics fm = g.getFontMetrics(); int charOffset = (width - fm.charWidth(s)) / 2; int pady = height / 5; g.drawString(String.valueOf(s), charOffset + x1 + width * (i-start), y1 + height - pady); - } } }