JAL-2591 updated HiddenColumns::findHiddenRegionPositions + test
[jalview.git] / src / jalview / appletgui / SeqCanvas.java
index b025f32..94f1caa 100755 (executable)
@@ -21,6 +21,7 @@
 package jalview.appletgui;
 
 import jalview.datamodel.AlignmentI;
+import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
@@ -36,6 +37,7 @@ import java.awt.Graphics;
 import java.awt.Image;
 import java.awt.Panel;
 import java.beans.PropertyChangeEvent;
+import java.util.List;
 
 public class SeqCanvas extends Panel implements ViewportListenerI
 {
@@ -127,14 +129,17 @@ public class SeqCanvas extends Panel implements ViewportListenerI
     ypos += avcharHeight;
     if (av.hasHiddenColumns())
     {
-      startx = av.getColumnSelection().adjustForHiddenColumns(startx);
-      endx = av.getColumnSelection().adjustForHiddenColumns(endx);
+      startx = av.getAlignment().getHiddenColumns()
+              .adjustForHiddenColumns(startx);
+      endx = av.getAlignment().getHiddenColumns()
+              .adjustForHiddenColumns(endx);
     }
 
     int maxwidth = av.getAlignment().getWidth();
     if (av.hasHiddenColumns())
     {
-      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;
+      maxwidth = av.getAlignment().getHiddenColumns()
+              .findColumnPosition(maxwidth) - 1;
     }
 
     // WEST SCALE
@@ -174,7 +179,8 @@ public class SeqCanvas extends Panel implements ViewportListenerI
 
     if (av.hasHiddenColumns())
     {
-      endx = av.getColumnSelection().adjustForHiddenColumns(endx);
+      endx = av.getAlignment().getHiddenColumns()
+              .adjustForHiddenColumns(endx);
     }
 
     SequenceI seq;
@@ -444,7 +450,8 @@ public class SeqCanvas extends Panel implements ViewportListenerI
 
     if (av.hasHiddenColumns())
     {
-      maxwidth = av.getColumnSelection().findColumnPosition(maxwidth) - 1;
+      maxwidth = av.getAlignment().getHiddenColumns()
+              .findColumnPosition(maxwidth) - 1;
     }
 
     while ((ypos <= canvasHeight) && (startRes < maxwidth))
@@ -478,13 +485,13 @@ public class SeqCanvas extends Panel implements ViewportListenerI
       }
       if (av.hasHiddenColumns() && av.getShowHiddenMarkers())
       {
+        HiddenColumns hidden = av.getAlignment().getHiddenColumns();
         g.setColor(Color.blue);
         int res;
-        for (int i = 0; i < av.getColumnSelection().getHiddenColumns()
-                .size(); i++)
+        List<Integer> positions = hidden.findHiddenRegionPositions();
+        for (int pos : positions)
         {
-          res = av.getColumnSelection().findHiddenRegionPosition(i)
-                  - startRes;
+          res = pos - startRes;
 
           if (res < 0 || res > endx - startRes)
           {
@@ -562,7 +569,8 @@ public class SeqCanvas extends Panel implements ViewportListenerI
 
       if (av.hasHiddenColumns())
       {
-        for (int[] region : av.getColumnSelection().getHiddenColumns())
+        HiddenColumns hidden = av.getAlignment().getHiddenColumns();
+        for (int[] region : hidden)
         {
           int hideStart = region[0];
           int hideEnd = region[1];
@@ -884,8 +892,8 @@ public class SeqCanvas extends Panel implements ViewportListenerI
         }
         fastPaint(scrollX, 0);
       }
-      else if (evt.getPropertyName() == "startseq"
-              || evt.getPropertyName() == "endseq")
+      else if (evt.getPropertyName().equals("startseq")
+              || evt.getPropertyName().equals("endseq"))
       {
         fastPaint(0, (int) evt.getNewValue() - (int) evt.getOldValue());
       }