JAL-2291 method taking a BitSet for hiding columns
[jalview.git] / src / jalview / datamodel / HiddenColumns.java
index 2edb3f1..96fff97 100644 (file)
@@ -4,6 +4,7 @@ import jalview.util.Comparison;
 import jalview.util.ShiftList;
 
 import java.util.ArrayList;
+import java.util.BitSet;
 import java.util.Collections;
 import java.util.List;
 import java.util.Vector;
@@ -1247,9 +1248,10 @@ public class HiddenColumns
   /**
    * Returns a hashCode built from hidden column ranges
    */
-  public int hashCode(int hc)
+  @Override
+  public int hashCode()
   {
-    int hashCode = hc;
+    int hashCode = 1;
     if (hiddenColumns != null)
     {
       for (int[] hidden : hiddenColumns)
@@ -1261,4 +1263,20 @@ public class HiddenColumns
     return hashCode;
   }
 
+  /**
+   * Hide columns corresponding to the marked bits
+   * 
+   * @param inserts
+   *          - columns map to bits starting from zero
+   */
+  public void hideMarkedBits(BitSet inserts)
+  {
+    for (int firstSet = inserts.nextSetBit(0), lastSet = 0; firstSet >= 0; firstSet = inserts
+            .nextSetBit(lastSet))
+    {
+      lastSet = inserts.nextClearBit(firstSet);
+      hideColumns(firstSet, lastSet - 1);
+    }
+  }
+
 }