+ int screenY = 0;\r
+ int blockStart = startRes;\r
+ int blockEnd = endRes;\r
+\r
+ for (int i = 0; i < regions.size(); i++)\r
+ {\r
+ int[] region = (int[]) regions.elementAt(i);\r
+ int hideStart = region[0];\r
+ int hideEnd = region[1];\r
+\r
+ if (hideStart <= blockStart)\r
+ {\r
+ blockStart += (hideEnd - hideStart) + 1;\r
+ continue;\r
+ }\r
+\r
+ blockEnd = hideStart - 1;\r
+\r
+ g1.translate(screenY * av.charWidth, 0);\r
+\r
+ draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);\r
+\r
+ if(av.getShowHiddenMarkers())\r
+ {\r
+ g1.setColor(Color.blue);\r
+\r
+ g1.drawLine( (blockEnd - blockStart + 1) * av.charWidth - 1,\r
+ 0 + offset,\r
+ (blockEnd - blockStart + 1) * av.charWidth - 1,\r
+ (endSeq - startSeq) * av.charHeight + offset);\r
+ }\r
+\r
+ g1.translate( -screenY * av.charWidth, 0);\r
+ screenY += blockEnd - blockStart + 1;\r
+ blockStart = hideEnd + 1;\r
+ }\r
+\r
+ if (screenY <= (endRes - startRes))\r
+ {\r
+ blockEnd = blockStart + (endRes - startRes) - screenY;\r
+ g1.translate(screenY * av.charWidth, 0);\r
+ draw(g1, blockStart, blockEnd, startSeq, endSeq, offset);\r
+\r
+ g1.translate( -screenY * av.charWidth, 0);\r
+ }\r
+ }\r
+\r
+ }\r
+\r
+\r
+\r
+\r
+ //int startRes, int endRes, int startSeq, int endSeq, int x, int y,\r
+ // int x1, int x2, int y1, int y2, int startx, int starty,\r
+ void draw(Graphics g,\r
+ int startRes, int endRes,\r
+ int startSeq, int endSeq,\r
+ int offset)\r
+ {\r
+ g.setFont(av.getFont());\r
+ sr.prepare(g, av.renderGaps);\r
+\r
+ SequenceI nextSeq;\r