X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFinder.java;h=5d07562765c2e6977a4dd6d542b0f457d4a1c92a;hb=6e5b06b9214bdfa8ecaeb601c6b088ec859f0f53;hp=3cce82c1b046b8f37c8aaf71dc91acb2794d59cf;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 3cce82c..5d07562 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -20,21 +20,25 @@ */ package jalview.gui; -import jalview.datamodel.SearchResults; -import jalview.datamodel.SequenceFeature; -import jalview.datamodel.SequenceI; -import jalview.jbgui.GFinder; -import jalview.util.MessageManager; -import jalview.viewmodel.AlignmentViewport; - import java.awt.event.ActionEvent; +import java.awt.event.KeyEvent; import java.util.Vector; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; +import javax.swing.AbstractAction; +import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.JOptionPane; +import javax.swing.KeyStroke; + +import jalview.datamodel.SearchResults; +import jalview.datamodel.SequenceFeature; +import jalview.datamodel.SequenceI; +import jalview.jbgui.GFinder; +import jalview.util.MessageManager; +import jalview.viewmodel.AlignmentViewport; /** * Performs the menu option for searching the alignment, for the next or all @@ -89,6 +93,7 @@ public class Finder extends GFinder frame = new JInternalFrame(); frame.setContentPane(this); frame.setLayer(JLayeredPane.PALETTE_LAYER); + addEscapeHandler(); Desktop.addInternalFrame(frame, MessageManager.getString("label.find"), WIDTH, HEIGHT); @@ -96,6 +101,31 @@ public class Finder extends GFinder } /** + * Add a handler for the Escape key when the window has focus + */ + private void addEscapeHandler() + { + getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( + KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "Cancel"); + getRootPane().getActionMap().put("Cancel", new AbstractAction() + { + public void actionPerformed(ActionEvent e) + { + escapeActionPerformed(); + } + }); + } + + /** + * Close the panel on Escape key press + */ + protected void escapeActionPerformed() + { + setVisible(false); + frame.dispose(); + } + + /** * Performs the 'Find Next' action. * * @param e