Merge branch 'Jalview-JS/develop.JAL-3446.ctrlDown' into
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index 836aa33..38ad437 100755 (executable)
@@ -26,7 +26,9 @@ import jalview.analysis.GeneticCodes;
 import jalview.api.SplitContainerI;
 import jalview.bin.Cache;
 import jalview.gui.JvSwingUtils;
+import jalview.gui.PaintRefresher;
 import jalview.gui.Preferences;
+import jalview.gui.TreePanel;
 import jalview.io.FileFormats;
 import jalview.schemes.ResidueColourScheme;
 import jalview.util.MessageManager;
@@ -34,15 +36,19 @@ import jalview.util.Platform;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Component;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
+import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.swing.BorderFactory;
@@ -276,15 +282,12 @@ public class GAlignFrame extends JInternalFrame
     };
 
     // FIXME getDefaultToolkit throws an exception in Headless mode
-    KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
-                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
+    KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S, Platform.SHORTCUT_KEY_MASK | InputEvent.SHIFT_DOWN_MASK,
             false);
     addMenuActionAndAccelerator(keyStroke, saveAs, al);
 
     closeMenuItem.setText(MessageManager.getString("action.close"));
-    keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+    keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W, Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -307,7 +310,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem selectAllSequenceMenuItem = new JMenuItem(
             MessageManager.getString("action.select_all"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -334,7 +337,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem invertSequenceMenuItem = new JMenuItem(
             MessageManager.getString("action.invert_sequence_selection"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -370,7 +373,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem remove2LeftMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_left"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -384,7 +387,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem remove2RightMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_right"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -398,7 +401,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeGappedColumnMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_empty_columns"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -412,8 +415,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeAllGapsMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_all_gaps"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
-                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
+            Platform.SHORTCUT_KEY_MASK
+                    | InputEvent.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -520,7 +523,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeRedundancyMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_redundancy"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -695,7 +698,7 @@ public class GAlignFrame extends JInternalFrame
     undoMenuItem.setEnabled(false);
     undoMenuItem.setText(MessageManager.getString("action.undo"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -709,7 +712,7 @@ public class GAlignFrame extends JInternalFrame
     redoMenuItem.setEnabled(false);
     redoMenuItem.setText(MessageManager.getString("action.redo"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -733,7 +736,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem printMenuItem = new JMenuItem(
             MessageManager.getString("action.print"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -759,7 +762,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem findMenuItem = new JMenuItem(
             MessageManager.getString("action.find"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
             MessageManager.getString("label.find_tip")));
     al = new ActionListener()
@@ -920,7 +923,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem deleteGroups = new JMenuItem(
             MessageManager.getString("action.undefine_groups"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -945,7 +948,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem createGroup = new JMenuItem(
             MessageManager.getString("action.create_group"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -959,8 +962,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem unGroup = new JMenuItem(
             MessageManager.getString("action.remove_group"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
-                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
+            Platform.SHORTCUT_KEY_MASK
+                    | InputEvent.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -974,7 +977,7 @@ public class GAlignFrame extends JInternalFrame
 
     copy.setText(MessageManager.getString("action.copy"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
 
     al = new ActionListener()
     {
@@ -988,7 +991,7 @@ public class GAlignFrame extends JInternalFrame
 
     cut.setText(MessageManager.getString("action.cut"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -1014,8 +1017,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem pasteNew = new JMenuItem(
             MessageManager.getString("label.to_new_alignment"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
-                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
+            Platform.SHORTCUT_KEY_MASK
+                    | InputEvent.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -1030,7 +1033,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem pasteThis = new JMenuItem(
             MessageManager.getString("label.to_this_alignment"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -1173,6 +1176,24 @@ public class GAlignFrame extends JInternalFrame
       @Override
       public void menuSelected(MenuEvent e)
       {
+        enableSortMenuOptions();
+      }
+
+      @Override
+      public void menuDeselected(MenuEvent e)
+      {
+      }
+
+      @Override
+      public void menuCanceled(MenuEvent e)
+      {
+      }
+    });
+    sortByTreeMenu.addMenuListener(new MenuListener()
+    {
+      @Override
+      public void menuSelected(MenuEvent e)
+      {
         buildTreeSortMenu();
       }
 
@@ -1547,8 +1568,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem invertColSel = new JMenuItem(
             MessageManager.getString("action.invert_column_selection"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
-                    | jalview.util.ShortcutKeyMaskExWrapper.ALT_DOWN_MASK,
+            Platform.SHORTCUT_KEY_MASK
+                    | InputEvent.ALT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -1611,7 +1632,7 @@ public class GAlignFrame extends JInternalFrame
 
     JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -1636,7 +1657,7 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem newView = new JMenuItem(
             MessageManager.getString("action.new_view"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T,
-            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx(), false);
+            Platform.SHORTCUT_KEY_MASK, false);
     al = new ActionListener()
     {
       @Override
@@ -1713,8 +1734,8 @@ public class GAlignFrame extends JInternalFrame
     });
     JMenuItem selectHighlighted = new JMenuItem(
             MessageManager.getString("action.select_highlighted_columns"));
-    selectHighlighted.setToolTipText(
-            MessageManager.getString("tooltip.select_highlighted_columns"));
+    selectHighlighted.setToolTipText(JvSwingUtils.wrapTooltip(true, 
+            MessageManager.getString("tooltip.select_highlighted_columns")));
     al = new ActionListener()
     {
       @Override
@@ -1919,6 +1940,10 @@ public class GAlignFrame extends JInternalFrame
     // selectMenu.add(listenToViewSelections);
   }
 
+  protected void enableSortMenuOptions()
+  {
+  }
+  
   protected void loadVcf_actionPerformed()
   {
   }
@@ -2717,4 +2742,6 @@ public class GAlignFrame extends JInternalFrame
   protected void showComplement_actionPerformed(boolean complement)
   {
   }
+  
+
 }