- if(av.getSelectionGroup()!=null || av.alignment.getGroups().size()>0)\r
- drawGroupsBoundaries(g, startRes, endRes, startSeq, endSeq, offset);\r
-\r
- }\r
-\r
- void drawGroupsBoundaries(Graphics g,\r
- int startRes, int endRes,\r
- int startSeq, int endSeq,\r
- int offset)\r
- {\r
- //\r
- /////////////////////////////////////\r
- // Now outline any areas if necessary\r
- /////////////////////////////////////\r
- SequenceGroup group = av.getSelectionGroup();\r
-\r
- int sx = -1;\r
- int sy = -1;\r
- int ex = -1;\r
- int groupIndex = -1;\r
-\r
- if ( (group == null) && (av.alignment.getGroups().size() > 0))\r
- {\r
- group = (SequenceGroup) av.alignment.getGroups().elementAt(0);\r
- groupIndex = 0;\r
- }\r
-\r
- if (group != null)\r
- {\r
- do\r
- {\r
- int oldY = -1;\r
- int i = 0;\r
- boolean inGroup = false;\r
- int top = -1;\r
- int bottom = -1;\r
- int alHeight = av.alignment.getHeight()-1;\r
-\r
- for (i = startSeq; i < endSeq; i++)\r
- {\r
- sx = (group.getStartRes() - startRes) * av.charWidth;\r
- sy = offset + ( (i - startSeq) * av.charHeight);\r
- ex = ( ( (group.getEndRes() + 1) - group.getStartRes()) * av.charWidth) -\r
- 1;\r
-\r
- if (sx + ex < 0 || sx > imgWidth)\r
- {\r
- continue;\r
- }\r
-\r
- if ( (sx <= (endRes - startRes) * av.charWidth) &&\r
- group.getSequences(false).\r
- contains(av.alignment.getSequenceAt(i)))\r
- {\r
- if ( (bottom == -1) &&\r
- (i >= alHeight ||\r
- !group.getSequences(false).contains(\r
- av.alignment.getSequenceAt(i + 1))))\r
- {\r
- bottom = sy + av.charHeight;\r
- }\r
-\r
- if (!inGroup)\r
- {\r
- if ( ( (top == -1) && (i == 0)) ||\r
- !group.getSequences(false).contains(\r
- av.alignment.getSequenceAt(i - 1)))\r
- {\r
- top = sy;\r
- }\r
-\r
- oldY = sy;\r
- inGroup = true;\r
-\r
- if (group == av.getSelectionGroup())\r
- {\r
- g.setColor(Color.red);\r
- }\r
- else\r
- {\r
- g.setColor(group.getOutlineColour());\r
- }\r
- }\r
- }\r
- else\r
- {\r
- if (inGroup)\r
- {\r
- if (sx >= 0 && sx < imgWidth)\r
- g.drawLine(sx, oldY, sx, sy);\r
-\r
- if (sx + ex < imgWidth)\r
- g.drawLine(sx + ex, oldY, sx + ex, sy);\r
-\r
- if (sx < 0)\r
- {\r
- ex += sx;\r
- sx = 0;\r
- }\r
-\r
- if (sx + ex > imgWidth)\r
- ex = imgWidth;\r
-\r
- else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)\r
- ex = (endRes - startRes + 1) * av.charWidth;\r
-\r
- if (top != -1)\r
- {\r
- g.drawLine(sx, top, sx + ex, top);\r
- top = -1;\r
- }\r
-\r
- if (bottom != -1)\r
- {\r
- g.drawLine(sx, bottom, sx + ex, bottom);\r
- bottom = -1;\r
- }\r
-\r
- inGroup = false;\r
- }\r
- }\r
- }\r
-\r
- if (inGroup)\r
- {\r
- sy = offset + ( (i - startSeq) * av.charHeight);\r
- if (sx >= 0 && sx < imgWidth)\r
- g.drawLine(sx, oldY, sx, sy);\r
-\r
- if (sx + ex < imgWidth)\r
- g.drawLine(sx + ex, oldY, sx + ex, sy);\r
-\r
- if (sx < 0)\r
- {\r
- ex += sx;\r
- sx = 0;\r
- }\r
-\r
- if (sx + ex > imgWidth)\r
- ex = imgWidth;\r
- else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)\r
- ex = (endRes - startRes + 1) * av.charWidth;\r
-\r
- if (top != -1)\r
- {\r
- g.drawLine(sx, top, sx + ex, top);\r
- top = -1;\r
- }\r
-\r
- if (bottom != -1)\r
- {\r
- g.drawLine(sx, bottom - 1, sx + ex, bottom - 1);\r
- bottom = -1;\r
- }\r
-\r
- inGroup = false;\r
- }\r
-\r
- groupIndex++;\r
-\r
- if (groupIndex >= av.alignment.getGroups().size())\r
- {\r
- break;\r
- }\r
-\r
- group = (SequenceGroup) av.alignment.getGroups().elementAt(groupIndex);\r
- }\r
- while (groupIndex < av.alignment.getGroups().size());\r
-\r
- }\r
- }\r
+ if (inGroup)\r
+ {\r
+ sy = offset + ( (i - startSeq) * av.charHeight);\r
+ if (sx >= 0 && sx < imgWidth)\r
+ {\r
+ g.drawLine(sx, oldY, sx, sy);\r
+ }\r
+\r
+ if (sx + ex < imgWidth)\r
+ {\r
+ g.drawLine(sx + ex, oldY, sx + ex, sy);\r
+ }\r
+\r
+ if (sx < 0)\r
+ {\r
+ ex += sx;\r
+ sx = 0;\r
+ }\r
+\r
+ if (sx + ex > imgWidth)\r
+ {\r
+ ex = imgWidth;\r
+ }\r
+ else if (sx + ex >= (endRes - startRes + 1) * av.charWidth)\r
+ {\r
+ ex = (endRes - startRes + 1) * av.charWidth;\r
+ }\r
+\r
+ if (top != -1)\r
+ {\r
+ g.drawLine(sx, top, sx + ex, top);\r
+ top = -1;\r
+ }\r
+\r
+ if (bottom != -1)\r
+ {\r
+ g.drawLine(sx, bottom - 1, sx + ex, bottom - 1);\r
+ bottom = -1;\r
+ }\r
+\r
+ inGroup = false;\r
+ }\r
+\r
+ groupIndex++;\r
+\r
+ if (groupIndex >= av.alignment.getGroups().size())\r
+ {\r
+ break;\r
+ }\r
+\r
+ group = (SequenceGroup) av.alignment.getGroups().elementAt(groupIndex);\r
+ }\r
+ while (groupIndex < av.alignment.getGroups().size());\r
+\r
+ }\r
+ }\r