3 import jalview.datamodel.*;
\r
4 import jalview.schemes.*;
\r
8 public class FeatureRenderer implements RendererI
\r
12 SequenceGroup currentSequenceGroup = null;
\r
13 SequenceGroup [] allGroups = null;
\r
17 public FeatureRenderer(AlignViewport av)
\r
23 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
25 Vector features = seq.getSequenceFeatures();
\r
26 Enumeration e = features.elements();
\r
27 while( e.hasMoreElements() )
\r
29 SequenceFeature sf = (SequenceFeature)e.nextElement();
\r
30 int fstart = seq.findIndex(sf.getStart())-1;
\r
31 int fend = seq.findIndex(sf.getEnd())-1;
\r
33 if( (fstart>=start&&fstart<=end) || (fend>=start&&fend<=end))
\r
37 g.setColor(Color.red);
\r
38 g.fillRoundRect( (fstart - start) * width, y1, width, height, 4,4);
\r
39 g.setColor(Color.white);
\r
41 char s = seq.getSequence().charAt(fstart);
\r
42 FontMetrics fm = g.getFontMetrics();
\r
43 int charOffset = (width - fm.charWidth(s))/2;
\r
44 int pady = height/5;
\r
45 g.drawString(String.valueOf(s), charOffset + x1 + width * (fstart - start), y1 + height - pady);
\r
50 for (int i = fstart; i <= fend; i++)
\r
52 g.setColor(Color.blue);
\r
53 g.fillRect( (i-start) * width, y1, width, height);
\r
55 g.setColor(Color.white);
\r
56 char s = seq.getSequence().charAt(i);
\r
57 FontMetrics fm = g.getFontMetrics();
\r
58 int charOffset = (width - fm.charWidth(s)) / 2;
\r
59 int pady = height / 5;
\r
60 g.drawString(String.valueOf(s),
\r
61 charOffset + x1 + width * (i-start),
\r
62 y1 + height - pady);
\r