JAL-3253-applet JAL-3383
[jalview.git] / src / jalview / datamodel / VisibleColsCollection.java
index e9437a7..cd812a1 100644 (file)
@@ -22,6 +22,7 @@ package jalview.datamodel;
 
 import jalview.api.AlignmentColsCollectionI;
 
+import java.util.BitSet;
 import java.util.Iterator;
 
 public class VisibleColsCollection implements AlignmentColsCollectionI
@@ -32,17 +33,19 @@ public class VisibleColsCollection implements AlignmentColsCollectionI
 
   HiddenColumns hidden;
 
-  public VisibleColsCollection(int s, int e, AlignmentI al)
+  private BitSet bsVisible;
+
+  public VisibleColsCollection(int s, int e, HiddenColumns h)
   {
     start = s;
     end = e;
-    hidden = al.getHiddenColumns();
+    hidden = h;
   }
 
   @Override
   public Iterator<Integer> iterator()
   {
-    return new VisibleColsIterator(start, end, hidden);
+    return hidden.getVisibleColsIterator(start, end);
   }
 
   @Override
@@ -57,4 +60,27 @@ public class VisibleColsCollection implements AlignmentColsCollectionI
     return false;
   }
 
+  /**
+   * Only the visible columns.
+   */
+  @Override
+  public BitSet getOverviewBitSet()
+  {
+    if (bsVisible == null)
+    {
+      bsVisible = new BitSet(end + 1);
+    }
+    bsVisible.clear();
+    bsVisible.set(start, end + 1);
+    bsVisible.andNot(hidden.getBitset());
+
+    return bsVisible;
+  }
+
+  @Override
+  public BitSet getHiddenBitSet()
+  {
+    return new BitSet();
+  }
+
 }