JAL-2579 Moved locateVisibleStartOfSequence to Sequence (refactored)
[jalview.git] / src / jalview / renderer / ScaleRenderer.java
index c7406a5..dc3272f 100644 (file)
 package jalview.renderer;
 
 import jalview.api.AlignViewportI;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SequenceI;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 /**
@@ -83,12 +85,16 @@ public class ScaleRenderer
     int refSp = 0;
     int refStartI = 0;
     int refEndI = -1;
+
+    HiddenColumns hc = av.getAlignment().getHiddenColumns();
+
     if (refSeq != null)
     {
       // find bounds and set origin appropriately
-      // locate first visible position for this sequence
-      refSp = av.getAlignment().getHiddenColumns()
-              .locateVisibleStartOfSequence(refSeq);
+      // locate first residue in sequence which is not hidden
+      Iterator<int[]> it = hc.iterator();
+      int index = refSeq.firstResidueOutsideIterator(it);
+      refSp = hc.absoluteToVisibleColumn(index);
 
       refStartI = refSeq.findIndex(refSeq.getStart()) - 1;
 
@@ -114,14 +120,12 @@ public class ScaleRenderer
       {
         if (refSeq == null)
         {
-          iadj = av.getAlignment().getHiddenColumns()
-                  .visibleToAbsoluteColumn(i - 1) + 1;
+          iadj = hc.visibleToAbsoluteColumn(i - 1) + 1;
           string = String.valueOf(iadj);
         }
         else
         {
-          iadj = av.getAlignment().getHiddenColumns()
-                  .visibleToAbsoluteColumn(i - 1);
+          iadj = hc.visibleToAbsoluteColumn(i - 1);
           refN = refSeq.findPosition(iadj);
           // TODO show bounds if position is a gap
           // - ie L--R -> "1L|2R" for