JAL-4046 JAL-3993 patch for 2.11.2.4 release
[jalview.git] / src / jalview / gui / SplitFrame.java
index 574cf04..6ebedb7 100644 (file)
  */
 package jalview.gui;
 
-import jalview.api.AlignViewControllerGuiI;
-import jalview.api.FeatureSettingsControllerI;
-import jalview.api.SplitContainerI;
-import jalview.controller.FeatureSettingsControllerGuiI;
-import jalview.datamodel.AlignmentI;
-import jalview.jbgui.GAlignFrame;
-import jalview.jbgui.GSplitFrame;
-import jalview.structure.StructureSelectionManager;
-import jalview.util.MessageManager;
-import jalview.util.Platform;
-import jalview.viewmodel.AlignmentViewport;
-
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
@@ -61,6 +49,18 @@ import javax.swing.event.ChangeListener;
 import javax.swing.event.InternalFrameAdapter;
 import javax.swing.event.InternalFrameEvent;
 
+import jalview.api.AlignViewControllerGuiI;
+import jalview.api.FeatureSettingsControllerI;
+import jalview.api.SplitContainerI;
+import jalview.controller.FeatureSettingsControllerGuiI;
+import jalview.datamodel.AlignmentI;
+import jalview.jbgui.GAlignFrame;
+import jalview.jbgui.GSplitFrame;
+import jalview.structure.StructureSelectionManager;
+import jalview.util.MessageManager;
+import jalview.util.Platform;
+import jalview.viewmodel.AlignmentViewport;
+
 /**
  * An internal frame on the desktop that hosts a horizontally split view of
  * linked DNA and Protein alignments. Additional views can be created in linked
@@ -117,9 +117,9 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
      * estimate width and height of SplitFrame; this.getInsets() doesn't seem to
      * give the full additional size (a few pixels short)
      */
-    int widthFudge = Platform.isAMac() ? MAC_INSETS_WIDTH
+    int widthFudge = Platform.isAMacAndNotJS() ? MAC_INSETS_WIDTH
             : WINDOWS_INSETS_WIDTH;
-    int heightFudge = Platform.isAMac() ? MAC_INSETS_HEIGHT
+    int heightFudge = Platform.isAMacAndNotJS() ? MAC_INSETS_HEIGHT
             : WINDOWS_INSETS_HEIGHT;
     int width = ((AlignFrame) getTopFrame()).getWidth() + widthFudge;
     int height = ((AlignFrame) getTopFrame()).getHeight()
@@ -259,8 +259,8 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
      * calculate the maximum ratio that leaves at least the height 
      * of two sequences (after rounding) visible in the bottom panel
      */
-    int bottomSequencesHeight = bottomFrame.alignPanel.getSeqPanel().seqCanvas
-            .getHeight();
+    int bottomSequencesHeight = bottomFrame.alignPanel
+            .getSeqPanel().seqCanvas.getHeight();
     int bottomPanelMinHeight = bottomPanelHeight
             - Math.max(0, bottomSequencesHeight - 3 * bottomCharHeight);
     double maxRatio = (totalHeight - bottomPanelMinHeight) / totalHeight;
@@ -268,7 +268,7 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
     /*
      * estimate ratio of (topFrameContent / bottomFrameContent)
      */
-    int insets = Platform.isAMac() ? MAC_INSETS_HEIGHT
+    int insets = Platform.isAMacAndNotJS() ? MAC_INSETS_HEIGHT
             : WINDOWS_INSETS_HEIGHT;
     // allow 3 'rows' for scale, scrollbar, status bar
     int topHeight = insets + (3 + topCount) * topCharHeight
@@ -427,7 +427,9 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
      * Ctrl-W / Cmd-W - close view or window
      */
     KeyStroke key_cmdW = KeyStroke.getKeyStroke(KeyEvent.VK_W,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     action = new AbstractAction()
     {
       @Override
@@ -448,7 +450,9 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
      * Ctrl-T / Cmd-T open new view
      */
     KeyStroke key_cmdT = KeyStroke.getKeyStroke(KeyEvent.VK_T,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     AbstractAction action = new AbstractAction()
     {
       @Override
@@ -804,7 +808,9 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
      * Ctrl-F / Cmd-F open Finder dialog, 'focused' on the right alignment
      */
     KeyStroke key_cmdF = KeyStroke.getKeyStroke(KeyEvent.VK_F,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     AbstractAction action = new AbstractAction()
     {
       @Override
@@ -814,7 +820,11 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
         if (c != null && c instanceof AlignFrame)
         {
           AlignFrame af = (AlignFrame) c;
-          new Finder(af.viewport, af.alignPanel);
+          boolean dna = af.getViewport().getAlignment().isNucleotide();
+          String scope = MessageManager.getString("label.in") + " "
+                  + (dna ? MessageManager.getString("label.nucleotide")
+                          : MessageManager.getString("label.protein"));
+          new Finder(af.alignPanel, true, scope);
         }
       }
     };
@@ -847,7 +857,8 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
   }
 
   /**
-   * holds the frame for feature settings, so Protein and DNA tabs can be managed
+   * holds the frame for feature settings, so Protein and DNA tabs can be
+   * managed
    */
   JInternalFrame featureSettingsUI;
 
@@ -977,7 +988,7 @@ public class SplitFrame extends GSplitFrame implements SplitContainerI
 
     if (showInternalFrame)
     {
-      if (Platform.isAMac())
+      if (Platform.isAMacAndNotJS())
       {
         Desktop.addInternalFrame(featureSettingsUI,
                 MessageManager.getString(