JAL-2438 FeatureColourFinder refactored from FeatureRenderer, fr not
[jalview.git] / src / jalview / appletgui / OverviewPanel.java
index 3301543..8427c77 100755 (executable)
 package jalview.appletgui;
 
 import jalview.datamodel.AlignmentI;
-
-import java.awt.*;
-import java.awt.event.*;
+import jalview.renderer.seqfeatures.FeatureColourFinder;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.Panel;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
 
 public class OverviewPanel extends Panel implements Runnable,
         MouseMotionListener, MouseListener
@@ -256,7 +266,8 @@ public class OverviewPanel extends Panel implements Runnable,
   {
     miniMe = null;
     int alwidth = av.getAlignment().getWidth();
-    int alheight = av.getAlignment().getHeight();
+    int alheight = av.getAlignment().getHeight()
+            + av.getAlignment().getHiddenSequences().getSize();
 
     if (av.isShowSequenceFeatures())
     {
@@ -289,10 +300,18 @@ public class OverviewPanel extends Panel implements Runnable,
     Color color = Color.yellow;
     int row, col, sameRow = 0, sameCol = 0;
     jalview.datamodel.SequenceI seq;
+    final boolean hasHiddenRows = av.hasHiddenRows(), hasHiddenCols = av
+            .hasHiddenColumns();
     boolean hiddenRow = false;
     AlignmentI alignment = av.getAlignment();
+
+    FeatureColourFinder finder = new FeatureColourFinder(fr);
     for (row = 0; row <= sequencesHeight; row++)
     {
+      if (resizeAgain)
+      {
+        break;
+      }
       if ((int) (row * sampleRow) == lastrow)
       {
         sameRow++;
@@ -300,7 +319,7 @@ public class OverviewPanel extends Panel implements Runnable,
       }
 
       hiddenRow = false;
-      if (av.hasHiddenRows())
+      if (hasHiddenRows)
       {
         seq = alignment.getHiddenSequences().getHiddenSequence(lastrow);
         if (seq == null)
@@ -337,7 +356,7 @@ public class OverviewPanel extends Panel implements Runnable,
 
           if (av.isShowSequenceFeatures())
           {
-            color = fr.findFeatureColour(color, seq, lastcol);
+            color = finder.findFeatureColour(color, seq, lastcol);
           }
         }
         else
@@ -346,8 +365,8 @@ public class OverviewPanel extends Panel implements Runnable,
         }
 
         if (hiddenRow
-                || (av.hasHiddenColumns() && !av.getColumnSelection()
-                        .isVisible(lastcol)))
+                || (hasHiddenCols && !av.getColumnSelection().isVisible(
+                        lastcol)))
         {
           color = color.darker().darker();
         }
@@ -374,6 +393,10 @@ public class OverviewPanel extends Panel implements Runnable,
     {
       for (col = 0; col < width; col++)
       {
+        if (resizeAgain)
+        {
+          break;
+        }
         lastcol = (int) (col * sampleCol);
         {
           mg.translate(col, sequencesHeight);