+ }\r
+\r
+ }\r
+\r
+ AnnotationPanel annotations;\r
+ int getAnnotationHeight()\r
+ {\r
+ if (!av.showAnnotation)\r
+ {\r
+ return 0;\r
+ }\r
+\r
+ if (annotations == null)\r
+ {\r
+ annotations = new AnnotationPanel(av);\r
+ }\r
+\r
+ return annotations.adjustPanelHeight();\r
+ }\r
+\r
+ void drawPanel(Graphics g1, int startRes, int endRes,\r
+ int startSeq, int endSeq, int offset)\r
+ {\r
+ if (!av.hasHiddenColumns)\r
+ {\r
+ draw(g1, startRes, endRes, startSeq, endSeq, offset);\r
+ }\r
+ else\r
+ {\r
+ java.util.Vector regions = av.getColumnSelection().getHiddenColumns();\r
+\r
+ 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
+ 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