\r
// public Color getResidueBoxColour(ColourSchemeI cs, SequenceI seq, int i);\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, Vector pid, int seqnum);\r
\r
}\r
FontMetrics fm;\r
boolean renderGaps = true;\r
SequenceGroup currentSequenceGroup = null;\r
- Color resBoxColour = Color.white;\r
+ SequenceGroup [] allGroups = null;\r
+ Color resBoxColour;\r
Graphics graphics;\r
\r
public SequenceRenderer(AlignViewport av)\r
\r
void getBoxColour(ColourSchemeI cs, SequenceI seq, int i)\r
{\r
-\r
if (cs != null)\r
resBoxColour = cs.findColour(seq.getSequence(i, i + 1), i, av.getConsensus(false));\r
else\r
resBoxColour = Color.white;\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, Vector pid, int seqnum)\r
{\r
- currentSequenceGroup = sg;\r
+ allGroups = sg;\r
\r
graphics = g;\r
\r
int curStart = x1;\r
int curWidth = width;\r
\r
- Color tempColour = Color.red;\r
+ Color tempColour = null;\r
while (i <= end && i < length)\r
{\r
if(inCurrentSequenceGroup(i))\r
getBoxColour(currentSequenceGroup.cs, seq, i);\r
}\r
else if(av.getShowBoxes())\r
- getBoxColour(av.getGlobalColourScheme(), seq, i);\r
+ getBoxColour(av.getGlobalColourScheme(), seq, i);\r
+ else\r
+ resBoxColour = Color.white;\r
+\r
\r
if (resBoxColour != tempColour)\r
{\r
if(!currentSequenceGroup.getDisplayText())\r
continue;\r
\r
- if(currentSequenceGroup.getColourText())\r
- graphics.setColor(resBoxColour.darker());\r
+ if (currentSequenceGroup.getColourText())\r
+ {\r
+ getBoxColour(currentSequenceGroup.cs, seq, i);\r
+ graphics.setColor(resBoxColour.darker());\r
+ }\r
}\r
else\r
{\r
continue;\r
\r
if(av.getColourText())\r
- graphics.setColor(resBoxColour.darker());\r
+ {\r
+ getBoxColour(av.getGlobalColourScheme(), seq, i);\r
+ graphics.setColor(resBoxColour.darker());\r
+ }\r
}\r
\r
charOffset = (width - fm.charWidth(s))/2;\r
\r
boolean inCurrentSequenceGroup(int res)\r
{\r
- if(currentSequenceGroup==null)\r
+ if(allGroups ==null)\r
return false;\r
\r
- return (currentSequenceGroup.getStartRes()<=res && currentSequenceGroup.getEndRes()>=res)?true:false;\r
+ for(int i=0; i<allGroups.length; i++)\r
+ if(allGroups[i].getStartRes()<=res && allGroups[i].getEndRes()>=res)\r
+ {\r
+ currentSequenceGroup = allGroups[i];\r
+ return true;\r
+ }\r
+\r
+ return false;\r
}\r
\r
public void drawHighlightedText(SequenceI seq,int start, int end, int x1, int y1, int width, int height)\r