/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
*/
package jalview.gui;
-import jalview.datamodel.SearchResults;
-import jalview.datamodel.SequenceFeature;
-import jalview.datamodel.SequenceI;
-import jalview.jbgui.GFinder;
-import jalview.util.MessageManager;
-
import java.awt.event.ActionEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.beans.PropertyVetoException;
import java.util.Vector;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
+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
* matches. If matches are found, they are highlighted, and the user has the
private static final int WIDTH = 340;
- AlignViewport av;
+ AlignmentViewport av;
AlignmentPanel ap;
* @param viewport
* @param alignPanel
*/
- public Finder(AlignViewport viewport, AlignmentPanel alignPanel)
+ public Finder(AlignmentViewport viewport, AlignmentPanel alignPanel)
{
av = viewport;
ap = alignPanel;
frame = new JInternalFrame();
frame.setContentPane(this);
frame.setLayer(JLayeredPane.PALETTE_LAYER);
+ addKeyListener();
Desktop.addInternalFrame(frame, MessageManager.getString("label.find"),
WIDTH, HEIGHT);
}
/**
+ * Add a key listener that closes the find dialog on 'Esc' key press
+ */
+ private void addKeyListener()
+ {
+ /*
+ * add the listener to the field with focus
+ */
+ textfield.addKeyListener(new KeyAdapter()
+ {
+ @Override
+ public void keyPressed(KeyEvent evt)
+ {
+ switch (evt.getKeyCode())
+ {
+ case 27:
+ // close this window on Esc key
+ Finder.this.setVisible(false);
+ try
+ {
+ Finder.this.frame.setClosed(true);
+ } catch (PropertyVetoException e)
+ {
+ // ignore
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ });
+ }
+
+ /**
* Performs the 'Find Next' action.
*
* @param e
jalview.analysis.Finder finder = new jalview.analysis.Finder(
av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex);
finder.setCaseSensitive(caseSensitive.isSelected());
+ finder.setIncludeDescription(searchDescription.isSelected());
+
finder.setFindAll(findAll);
finder.find(searchString); // returns true if anything was actually found