Merge branch 'develop' into update_212_Dec_merge_with_21125_chamges
[jalview.git] / src / jalview / gui / OverviewPanel.java
index adde919..5da4ae0 100755 (executable)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.api.AlignViewportI;
 import jalview.bin.Cache;
 import jalview.renderer.OverviewRenderer;
 import jalview.util.MessageManager;
@@ -63,7 +64,7 @@ public class OverviewPanel extends JPanel
 
   private OverviewCanvas oviewCanvas;
 
-  protected AlignViewport av;
+  private AlignViewportI av;
 
   private AlignmentPanel ap;
 
@@ -73,34 +74,40 @@ public class OverviewPanel extends JPanel
 
   protected boolean draggingBox = false;
 
+  private Dimension dim;
+  
+  private boolean showProgress = !Platform.isJS();
   protected ProgressPanel progressPanel;
 
+  
   /**
-   * Creates a new OverviewPanel object.
-   * 
-   * @param alPanel
-   *          The alignment panel which is shown in the overview panel
+   * Creates the appropriate type of OverviewDimensions, with the desired size
    */
-  public OverviewPanel(AlignmentPanel alPanel)
+  private void createOverviewDimensions()
   {
-    this.av = alPanel.av;
-    this.ap = alPanel;
-
-    showHidden = Cache.getDefault(Preferences.SHOW_OV_HIDDEN_AT_START,
-            false);
+    boolean showAnnotation = (av.isShowAnnotation()
+            && av.getAlignmentConservationAnnotation() != null);
     if (showHidden)
     {
-      od = new OverviewDimensionsShowHidden(av.getRanges(),
-              (av.isShowAnnotation()
-                      && av.getAlignmentConservationAnnotation() != null));
+      od = new OverviewDimensionsShowHidden(av.getRanges(), showAnnotation,
+              dim);
     }
     else
     {
-      od = new OverviewDimensionsHideHidden(av.getRanges(),
-              (av.isShowAnnotation()
-                      && av.getAlignmentConservationAnnotation() != null));
+      od = new OverviewDimensionsHideHidden(av.getRanges(), showAnnotation,
+              dim);
     }
+  }
+
+  public OverviewPanel(AlignmentPanel alPanel, Dimension dim)
+  {
+    this.av = alPanel.av;
+    this.ap = alPanel;
+    this.dim = dim;
 
+    showHidden = Cache.getDefault(Preferences.SHOW_OV_HIDDEN_AT_START,
+            false);
+    createOverviewDimensions();
     setLayout(new BorderLayout());
     progressPanel = new ProgressPanel(OverviewRenderer.UPDATE,
             MessageManager.getString("label.oview_calc"), getWidth());
@@ -113,7 +120,7 @@ public class OverviewPanel extends JPanel
 
     // without this the overview window does not size to fit the overview canvas
     setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
-
+    
     addComponentListener(new ComponentAdapter()
     {
       @Override
@@ -195,39 +202,37 @@ public class OverviewPanel extends JPanel
       @Override
       public void mousePressed(MouseEvent evt)
       {
-
-        if (Platform.isWinRightButton(evt))
-        {
-          showPopupMenu(evt);
-          return;
-        }
-        if (SwingUtilities.isRightMouseButton(evt))
-        {
-          return;
+         
+       if (Platform.isWinRightButton(evt)) {
+               showPopupMenu(evt);
+               return;
+       }
+        if (SwingUtilities.isRightMouseButton(evt)) {
+               return;
         }
-        // don't do anything if the mouse press is in the overview's box
-        // (wait to see if it's a drag instead)
-        // otherwise update the viewport
-        if (!od.isPositionInBox(evt.getX(), evt.getY()))
-        {
-          draggingBox = false;
+          // don't do anything if the mouse press is in the overview's box
+          // (wait to see if it's a drag instead)
+          // otherwise update the viewport
+          if (!od.isPositionInBox(evt.getX(), evt.getY()))
+          {
+            draggingBox = false;
 
-          // display drag cursor at mouse position
-          setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
+            // display drag cursor at mouse position
+            setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
 
-          od.updateViewportFromMouse(evt.getX(), evt.getY(),
-                  av.getAlignment().getHiddenSequences(),
-                  av.getAlignment().getHiddenColumns());
-          getParent().setCursor(
-                  Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
-        }
-        else
-        {
-          draggingBox = true;
-          od.setDragPoint(evt.getX(), evt.getY(),
-                  av.getAlignment().getHiddenSequences(),
-                  av.getAlignment().getHiddenColumns());
-        }
+            od.updateViewportFromMouse(evt.getX(), evt.getY(),
+                    av.getAlignment().getHiddenSequences(),
+                    av.getAlignment().getHiddenColumns());
+            getParent().setCursor(
+                    Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
+          }
+          else
+          {
+            draggingBox = true;
+            od.setDragPoint(evt.getX(), evt.getY(),
+                    av.getAlignment().getHiddenSequences(),
+                    av.getAlignment().getHiddenColumns());
+          }
       }
 
       @Override
@@ -287,20 +292,8 @@ public class OverviewPanel extends JPanel
    */
   protected void toggleHiddenColumns()
   {
-    if (showHidden)
-    {
-      showHidden = false;
-      od = new OverviewDimensionsHideHidden(av.getRanges(),
-              (av.isShowAnnotation()
-                      && av.getAlignmentConservationAnnotation() != null));
-    }
-    else
-    {
-      showHidden = true;
-      od = new OverviewDimensionsShowHidden(av.getRanges(),
-              (av.isShowAnnotation()
-                      && av.getAlignmentConservationAnnotation() != null));
-    }
+    showHidden = !showHidden;
+    createOverviewDimensions();
     oviewCanvas.resetOviewDims(od);
     updateOverviewImage();
     setBoxPosition();
@@ -324,7 +317,7 @@ public class OverviewPanel extends JPanel
       od.setWidth(getWidth());
       od.setHeight(getHeight() - progressPanel.getHeight());
     }
-
+    
     setPreferredSize(new Dimension(od.getWidth(),
             od.getHeight() + progressPanel.getHeight()));
 
@@ -337,6 +330,7 @@ public class OverviewPanel extends JPanel
     thread.start();
     repaint();
 
+    
   }
 
   @Override
@@ -407,9 +401,8 @@ public class OverviewPanel extends JPanel
        * close the parent frame (which also removes it from the
        * Desktop Windows menu)
        */
-      ((JInternalFrame) SwingUtilities
-              .getAncestorOfClass(JInternalFrame.class, (this)))
-                      .setClosed(true);
+      ((JInternalFrame) SwingUtilities.getAncestorOfClass(
+              JInternalFrame.class, (this))).setClosed(true);
     } catch (PropertyVetoException e)
     {
       // ignore