3 import jalview.datamodel.*;
\r
4 import jalview.schemes.*;
\r
5 import jalview.util.*;
\r
8 import java.awt.geom.*;
\r
11 public class GraphRenderer implements RendererI {
\r
12 protected Color color = Color.black;
\r
13 protected Color maroon = new Color(200,0,50);
\r
15 public Color getResidueBoxColour(ColourSchemeI cs, SequenceI seq, int i) {
\r
16 Color c = cs.findColour(seq,seq.getSequence(i,i+1),i,null);
\r
20 public void drawSequence(Graphics g,ColourSchemeI cs,SequenceI seq,int start, int end, int x1, int y1, double width, int height,boolean showScores, boolean displayBoxes, boolean displayText,Vector pid, int seqnum,AlignViewport av) {
\r
23 int length = seq.getLength();
\r
25 Color currentColor = Color.white;
\r
27 g.setColor(Color.black);
\r
31 while (i <= end && i < length) {
\r
32 char c = seq.getCharAt(i);
\r
35 Vector values = (Vector)pid.elementAt(i-start);
\r
36 int val = ((Integer)values.elementAt(seqnum)).intValue();
\r
38 int frac = (int)(100*val/(av.getPIDWindow()+1));
\r
41 // g.setColor(maroon);
\r
42 // } else if (frac > 90) {
\r
43 // g.setColor(Color.red);
\r
44 // } else if (frac > 80) {
\r
45 // g.setColor(Color.orange);
\r
46 // } else if (frac > 70) {
\r
47 // g.setColor(Color.pink);
\r
48 // } else if (frac > 50) {
\r
49 // g.setColor(Color.yellow);
\r
50 // } else if (frac > 30) {
\r
51 // g.setColor(Color.lightGray);
\r
54 int baseline = av.getPIDBaseline();
\r
61 if (baseline == 100) {
\r
65 Graphics2D g2d = (Graphics2D)g;
\r
67 g2d.setColor(new Color(255*frac/(100-baseline),50*frac/(100-baseline),50*frac/(100-baseline)));
\r
69 //g.setColor(new Color(255*frac/(100-baseline),50*frac/(100-baseline),255-50*frac/(100-baseline)));
\r
70 //g.fillRect(x1+(int)(width*(i-start)),y1+height - (int)(frac*height/(100-baseline)),
\r
71 //width, (int)(frac*height/(100-baseline)));
\r
73 int[] xpoints = new int[4];
\r
74 int[] ypoints = new int[4];
\r
77 prev = y1 + height - (int)(frac*height/(100-baseline));
\r
84 xpoints[0] = (x1+ (int)(width*(i-start)));
\r
87 xpoints[1] = (x1 + (int)(width*(i-start+1)));
\r
88 ypoints[1] = y1 + height - (int)(frac*height/(100-baseline));
\r
90 xpoints[3] = (x1 + (int)(width*(i-start)));;
\r
91 ypoints[3] = y1 + height;
\r
93 xpoints[2] = (x1 + (int)(width*(i-start+1)));
\r
94 ypoints[2] = y1 + height;
\r
96 Polygon poly = new Polygon();
\r
98 poly.xpoints = xpoints;
\r
99 poly.ypoints = ypoints;
\r
105 g.setColor(Color.black);
\r
106 g.drawString(seq.getSequence().substring(i,i+1),x1+(int)(width*(i-start)),y1+height);
\r
108 g.setColor(Color.black);
\r
112 g.drawLine(x1+(int)(width*(i-start)-width/2), prev,
\r
113 x1+(int)(width*(i-start+1)-width/2),y1+height - (int)(frac*height/(100-baseline)));
\r
115 g.drawLine(x1+(int)(width*(i-start)), y1+height - (int)(frac*height/(100-baseline)),
\r
116 x1+(int)(width*(i-start+1)),y1+height - (int)(frac*height/(100-baseline)));
\r