import java.awt.*;\r
import java.util.*;\r
\r
-public class FeatureRenderer implements RendererI\r
+public class FeatureRenderer\r
{\r
AlignViewport av;\r
\r
}\r
\r
\r
- public void drawSequence(Graphics g,SequenceI seq,SequenceGroup [] sg, int start, int end, int x1, int y1, int width, int height, Vector pid, int seqnum)\r
+ public void drawSequence(Graphics g,SequenceI seq,SequenceGroup [] sg, int start, int end, int x1, int y1, int width, int height)\r
{\r
Vector features = seq.getSequenceFeatures();\r
Enumeration e = features.elements();\r
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
{\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