\r
//Which ids are we printing\r
int starty = av.getStartSeq();\r
- int endy = av.getEndSeq();\r
+ int endy = da.getHeight();\r
\r
if (av.getWrapAlignment())\r
{\r
- starty = starty%av.getChunkHeight();\r
+ // Draw the rest of the panels\r
+ int chunkHeight = (da.getHeight() + 2)*av.charHeight;\r
+ int row = av.getStartRes() / av.chunkWidth ;\r
+ for(int ypos=2*av.charHeight;\r
+ ypos <= getHeight() && row*av.chunkWidth<da.getWidth();\r
+ ypos += chunkHeight, row++ )\r
+ {\r
+ for (int i = starty; i < endy; i++)\r
+ {\r
+ SequenceI s = da.getSequenceAt(i);\r
+ drawIdString(gg, s, i, 0, ypos);\r
+ }\r
+ }\r
\r
- int ypos = 0;\r
- int rowstart = starty;\r
\r
- if (starty == 0)\r
- ypos = 2*charHeight;\r
- else if (starty == 1)\r
- {\r
- starty = 0;\r
- ypos = charHeight;\r
- }\r
-\r
- endy = starty + da.getHeight();\r
-\r
- if (endy > da.getHeight()) {\r
- endy = da.getHeight();\r
- }\r
-\r
- for (int i = starty; i < endy; i++) {\r
- SequenceI s = da.getSequenceAt(i);\r
- drawIdString(gg,s,i,starty,ypos);\r
- }\r
- if (rowstart == 0) {\r
- ypos = ypos + av.getChunkHeight();\r
- } else if (rowstart == 1) {\r
- ypos = ypos + av.getChunkHeight();\r
- } else {\r
- ypos = ypos + av.getChunkHeight() - rowstart*charHeight;\r
- }\r
-\r
- starty = 0;\r
-\r
- int chunkwidth = av.getChunkWidth();\r
- int startx = (int)(av.getEndSeq()/chunkwidth)*chunkwidth;\r
- int endx = startx + chunkwidth;\r
-\r
-\r
- while (ypos <= getHeight() && endx < da.getWidth()) {\r
-\r
- for (int i = starty; i < endy; i++) {\r
- SequenceI s = da.getSequenceAt(i);\r
- drawIdString(gg,s,i,starty,ypos);\r
- }\r
-\r
- ypos += av.getChunkHeight();\r
- startx += chunkwidth;\r
- endx = startx + chunkwidth;\r
-\r
- if (endx > da.getWidth()) {\r
- endx = da.getWidth();\r
- }\r
-\r
- starty = 0;\r
-\r
- if (endy > da.getHeight()) {\r
- endy = da.getHeight();\r
- }\r
-\r
- }\r
} else\r
{\r
\r