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;
/**
* Performs the menu option for searching the alignment, for the next or all
frame = new JInternalFrame();
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
+ addEscapeHandler();
Desktop.addInternalFrame(frame, MessageManager.getString("label.find"),
WIDTH, HEIGHT);
}
/**
+ * 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