JAL-3253-applet JAL-3383 Overview
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 8f24185..5694c3d 100755 (executable)
@@ -120,37 +120,7 @@ public class OverviewPanel extends JPanel
       @Override
       public void componentResized(ComponentEvent evt)
       {
-        int ph = (progressPanel.getParent() == null ? 0
-                : progressPanel.getHeight());
-        // Resize is called on the initial display of the overview.
-        // This code adjusts sizes to account for the progress bar if it has not
-        // already been accounted for, which triggers another resize call for
-        // the correct sizing, at which point the overview image is updated.
-        // (This avoids a double recalculation of the image.)
-        if (getWidth() == od.getWidth()
-                && getHeight() == od.getHeight() + ph)
-        {
-          updateOverviewImage();
-        }
-        else
-        {
-          int w = getWidth();
-          int h = getHeight();
-          if ((w > 0) && (h > 0))
-          {
-            if (dim != null)
-            {
-              dim.setSize(w, h - ph);
-            }
-            od.setWidth(w);
-            od.setHeight(h - ph);
-            repaint();
-          }
-          // BH 2019.07.29 this is unnecessary -- it is what layout managers are
-          // for:
-          // setPreferredSize(new Dimension(od.getWidth(), od.getHeight() +
-          // ph));
-        }
+        resizePanel();
       }
 
     });
@@ -258,13 +228,50 @@ public class OverviewPanel extends JPanel
 
     });
 
-    /*
-     * Javascript does not call componentResized on initial display,
-     * so do the update here
-     */
-    if (Platform.isJS())
+    // /*
+    // * Javascript does not call componentResized on initial display,
+    // * so do the update here
+    // */
+    // if (Platform.isJS())
+    // {
+    // updateOverviewImage();
+    // }
+  }
+
+  protected void resizePanel()
+  {
+    int ph = (progressPanel.getParent() == null ? 0
+            : progressPanel.getHeight());
+    // Resize is called on the initial display of the overview.
+    // This code adjusts sizes to account for the progress bar if it has not
+    // already been accounted for, which triggers another resize call for
+    // the correct sizing, at which point the overview image is updated.
+    // (This avoids a double recalculation of the image.)
+    if (getWidth() == od.getWidth() && getHeight() == od.getHeight() + ph)
+    {
+      if (canvas.lastMiniMe == null)
+      {
+        updateOverviewImage();
+      }
+    }
+    else
     {
-      updateOverviewImage();
+      int w = getWidth();
+      int h = getHeight();
+      if ((w > 0) && (h > 0))
+      {
+        if (dim != null)
+        {
+          dim.setSize(w, h - ph);
+        }
+        od.setWidth(w);
+        od.setHeight(h - ph);
+        updateOverviewImage();
+      }
+      // BH 2019.07.29 this is unnecessary -- it is what layout managers are
+      // for:
+      // setPreferredSize(new Dimension(od.getWidth(), od.getHeight() +
+      // ph));
     }
   }
 
@@ -326,7 +333,20 @@ public class OverviewPanel extends JPanel
   }
 
   /**
-   * Updates the overview image when the related alignment panel is updated
+   * Updates the overview image when the related alignment panel is updated.
+   * 
+   * Cases:
+   * 
+   * AlignFrame.setFeatureGroupState
+   * 
+   * AlignmentPanel.paintAlignment(true,...) (117 references)
+   * 
+   * OverviewPanel..componentResized() OverviewPanel.toggleHiddenColumns()
+   * 
+   * PopupMenu for action.reveal_sequences, action.reveal_all
+   * 
+   * SliderPanel.mouseReleased()
+   * 
    */
   public void updateOverviewImage()
   {
@@ -363,11 +383,11 @@ public class OverviewPanel extends JPanel
   {
     if (canvas != null)
     {
+      setBoxPosition();
       canvas.draw(av.isShowSequenceFeatures(),
               (av.isShowAnnotation()
                       && av.getAlignmentConservationAnnotation() != null),
               ap.getFeatureRenderer());
-      setBoxPosition();
     }
   }