+\r
+ annels.addElement(els = new Annotation[blockEnd - blockStart]);\r
+ System.arraycopy(alignmentAnnotation.annotations, blockStart, els,\r
+ 0, els.length);\r
+ w += els.length;\r
+ blockStart = hideEnd + 1;\r
+ blockEnd = end;\r
+ }\r
+\r
+ if (end > blockStart)\r
+ {\r
+ annels.addElement(els = new Annotation[end - blockStart + 1]);\r
+ if ((els.length + blockStart) <= alignmentAnnotation.annotations.length)\r
+ {\r
+ // copy just the visible segment of the annotation row\r
+ System.arraycopy(alignmentAnnotation.annotations, blockStart,\r
+ els, 0, els.length);\r
+ }\r
+ else\r
+ {\r
+ // copy to the end of the annotation row\r
+ System.arraycopy(alignmentAnnotation.annotations, blockStart,\r
+ els, 0,\r
+ (alignmentAnnotation.annotations.length - blockStart));\r
+ }\r
+ w += els.length;\r
+ }\r
+ if (w == 0)\r
+ return;\r
+ Enumeration e = annels.elements();\r
+ alignmentAnnotation.annotations = new Annotation[w];\r
+ w = 0;\r
+ while (e.hasMoreElements())\r
+ {\r
+ Annotation[] chnk = (Annotation[]) e.nextElement();\r
+ System.arraycopy(chnk, 0, alignmentAnnotation.annotations, w,\r
+ chnk.length);\r
+ w += chnk.length;\r