From cd3065a2c67664b22dc06fb5f2fd4870ca79f717 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Mon, 7 Oct 2013 17:44:11 +0100 Subject: [PATCH] JAL-1384 group/ungroup sequences with command/ctrl+G and shift+command/ctrl+G --- src/jalview/appletgui/AlignFrame.java | 33 +++++++++++++++++++++++++++++++ src/jalview/gui/AlignFrame.java | 18 +++++++++++++++++ src/jalview/jbgui/GAlignFrame.java | 35 +++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 2cf7602..3325525 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -544,6 +544,20 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } break; + case KeyEvent.VK_G: + if (evt.isControlDown()) + { + if (evt.isShiftDown()) + { + this.unGroup_actionPerformed(); + } + else + { + this.createGroup_actionPerformed(); + } + } + break; + case KeyEvent.VK_U: if (evt.isControlDown()) { @@ -1896,6 +1910,17 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } } + protected void createGroup_actionPerformed() + { + avc.createGroup(); + } + protected void unGroup_actionPerformed() + { + if (avc.unGroup()) + { + alignPanel.alignmentChanged(); + } + } protected void deleteGroups_actionPerformed() { if (avc.deleteGroups()) @@ -2848,6 +2873,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MenuItem grpsFromSelection = new MenuItem(); + MenuItem createGroup = new MenuItem(); + + MenuItem unGroup = new MenuItem(); + MenuItem delete = new MenuItem(); MenuItem copy = new MenuItem(); @@ -3056,6 +3085,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, deleteGroups.addActionListener(this); grpsFromSelection.setLabel("Make Groups for selection"); grpsFromSelection.addActionListener(this); + createGroup.setLabel("Create Group"); + unGroup.setLabel("Remove Group"); copy.setLabel("Copy"); copy.addActionListener(this); cut.setLabel("Cut"); @@ -3284,6 +3315,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, selectMenu.add(deselectAllSequenceMenuItem); selectMenu.add(invertSequenceMenuItem); selectMenu.add(invertColSel); + selectMenu.add(createGroup); + selectMenu.add(unGroup); selectMenu.add(grpsFromSelection); selectMenu.add(deleteGroups); diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 382ccda..d15f742 100755 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -5467,6 +5467,24 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } } + @Override + protected void createGroup_actionPerformed(ActionEvent e) + { + if (avc.createGroup()) + { + alignPanel.alignmentChanged(); + } + } + + @Override + protected void unGroup_actionPerformed(ActionEvent e) + { + if (avc.unGroup()) + { + alignPanel.alignmentChanged(); + } + } + /** * make the given alignmentPanel the currently selected tab * diff --git a/src/jalview/jbgui/GAlignFrame.java b/src/jalview/jbgui/GAlignFrame.java index b523763..1eb406e 100755 --- a/src/jalview/jbgui/GAlignFrame.java +++ b/src/jalview/jbgui/GAlignFrame.java @@ -181,6 +181,9 @@ public class GAlignFrame extends JInternalFrame public JCheckBoxMenuItem showSeqFeaturesHeight = new JCheckBoxMenuItem(); JMenuItem deleteGroups = new JMenuItem(); + + JMenuItem createGroup = new JMenuItem(); + JMenuItem unGroup = new JMenuItem(); JMenuItem delete = new JMenuItem(); @@ -1199,6 +1202,28 @@ public class GAlignFrame extends JInternalFrame deleteGroups_actionPerformed(e); } }); + createGroup.setText("Create group"); + createGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke( + java.awt.event.KeyEvent.VK_G, Toolkit.getDefaultToolkit() + .getMenuShortcutKeyMask(), false)); + createGroup.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + createGroup_actionPerformed(e); + } + }); + unGroup.setText("Ungroup"); + unGroup.setAccelerator(javax.swing.KeyStroke.getKeyStroke( + java.awt.event.KeyEvent.VK_G,Toolkit.getDefaultToolkit() + .getMenuShortcutKeyMask() | java.awt.event.KeyEvent.SHIFT_MASK, false)); + unGroup.addActionListener(new java.awt.event.ActionListener() + { + public void actionPerformed(ActionEvent e) + { + unGroup_actionPerformed(e); + } + }); copy.setText("Copy"); copy.setAccelerator(javax.swing.KeyStroke.getKeyStroke( java.awt.event.KeyEvent.VK_C, Toolkit.getDefaultToolkit() @@ -1946,6 +1971,8 @@ public class GAlignFrame extends JInternalFrame selectMenu.add(deselectAllSequenceMenuItem); selectMenu.add(invertSequenceMenuItem); selectMenu.add(invertColSel); + selectMenu.add(createGroup); + selectMenu.add(unGroup); selectMenu.add(deleteGroups); selectMenu.add(grpsFromSelection); // TODO - determine if the listenToViewSelections button is needed : see bug @@ -2307,6 +2334,14 @@ public class GAlignFrame extends JInternalFrame protected void deleteGroups_actionPerformed(ActionEvent e) { } + + protected void createGroup_actionPerformed(ActionEvent e) + { + } + + protected void unGroup_actionPerformed(ActionEvent e) + { + } protected void copy_actionPerformed(ActionEvent e) { -- 1.7.10.2