+ }\r
+ // and shift the rest.\r
+ this.compensateForEdits(deletions);\r
+ }\r
+ }\r
+ }\r
+\r
+ /**\r
+ * This Method is used to return all the HiddenColumn regions\r
+ * less than the given index.\r
+ * @param end int\r
+ * @return Vector\r
+ */\r
+ public Vector getHiddenColumns()\r
+ {\r
+ return hiddenColumns;\r
+ }\r
+\r
+ /**\r
+ * Return absolute column index for a visible column index\r
+ * @param column int column index in alignment view\r
+ * @return alignment column index for column\r
+ */\r
+ public int adjustForHiddenColumns(int column)\r
+ {\r
+ int result = column;\r
+ if (hiddenColumns != null)\r
+ {\r
+ for (int i = 0; i < hiddenColumns.size(); i++)\r
+ {\r
+ int[] region = (int[]) hiddenColumns.elementAt(i);\r
+ if (result >= region[0])\r
+ {\r
+ result += region[1] - region[0] + 1;\r
+ }\r
+ }\r
+ }\r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * Use this method to find out where a visible column is in the alignment\r
+ * when hidden columns exist\r
+ * @param hiddenColumn int\r
+ * @return int\r
+ */\r
+ public int findColumnPosition(int hiddenColumn)\r
+ {\r
+ int result = hiddenColumn;\r
+ if (hiddenColumns != null)\r
+ {\r
+ int index = 0;\r
+ int gaps = 0;\r
+ do\r
+ {\r
+ int[] region = (int[]) hiddenColumns.elementAt(index);\r
+ if (hiddenColumn > region[1])\r
+ {\r
+ result -= region[1] + 1 - region[0];\r
+ }\r
+ index++;\r
+ }\r
+ while (index < hiddenColumns.size());\r
+\r
+ result -= gaps;\r
+ }\r