X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FFinder.java;fp=src%2Fjalview%2Fgui%2FFinder.java;h=c5b25bf7519035d2937b1f8dd1df847f14807983;hb=3ba65b98445f192453664357a1df25128fe07c84;hp=1cbe6ab2a09a9639ace0692822b338241dab7123;hpb=745806901cdcda04d9b5c496cb5249a03af19971;p=jalview.git diff --git a/src/jalview/gui/Finder.java b/src/jalview/gui/Finder.java index 1cbe6ab..c5b25bf 100755 --- a/src/jalview/gui/Finder.java +++ b/src/jalview/gui/Finder.java @@ -45,6 +45,7 @@ import javax.swing.JComponent; import javax.swing.JInternalFrame; import javax.swing.JLayeredPane; import javax.swing.KeyStroke; +import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; /** @@ -80,21 +81,26 @@ public class Finder extends GFinder */ private int seqIndex = 0; - private int resIndex = -1; + private int colIndex = -1; - Map seqIndices; + private Map seqIndices; - Map resIndices; + private Map colIndices; private SearchResultsI searchResults; + /* + * true if we only search a given alignment view + */ + private boolean focusfixed; + /** - * Creates a new Finder object with no associated viewport or panel. + * Creates a new Finder object with no associated viewport or panel. Each Find + * or Find Next action will act on whichever viewport has focus at the time. */ public Finder() { this(null, null); - focusfixed = false; } /** @@ -109,13 +115,13 @@ public class Finder extends GFinder av = viewport; ap = alignPanel; seqIndices = new HashMap<>(); - resIndices = new HashMap<>(); - focusfixed = true; + colIndices = new HashMap<>(); + focusfixed = viewport != null; frame = new JInternalFrame(); frame.setContentPane(this); frame.setLayer(JLayeredPane.PALETTE_LAYER); frame.addInternalFrameListener( - new javax.swing.event.InternalFrameAdapter() + new InternalFrameAdapter() { @Override public void internalFrameClosing(InternalFrameEvent e) @@ -148,12 +154,10 @@ public class Finder extends GFinder } /** - * Performs the 'Find Next' action. - * - * @param e + * Performs the 'Find Next' action on the alignment panel with focus */ @Override - public void findNext_actionPerformed(ActionEvent e) + public void findNext_actionPerformed() { if (getFocusedViewport()) { @@ -162,27 +166,20 @@ public class Finder extends GFinder } /** - * Performs the 'Find All' action. - * - * @param e + * Performs the 'Find All' action on the alignment panel with focus */ @Override - public void findAll_actionPerformed(ActionEvent e) + public void findAll_actionPerformed() { if (getFocusedViewport()) { - resIndex = -1; + colIndex = -1; seqIndex = 0; doSearch(true); } } /** - * do we only search a given alignment view ? - */ - private boolean focusfixed; - - /** * if !focusfixed and not in a desktop environment, checks that av and ap are * valid. Otherwise, gets the topmost alignment window and sets av and ap * accordingly @@ -217,14 +214,14 @@ public class Finder extends GFinder * panel where we have previously searched */ seqIndex = 0; - resIndex = -1; + colIndex = -1; if (seqIndices.containsKey(av)) { seqIndex = seqIndices.get(av).intValue(); } - if (resIndices.containsKey(av)) + if (colIndices.containsKey(av)) { - resIndex = resIndices.get(av).intValue(); + colIndex = colIndices.get(av).intValue(); } return true; } @@ -291,7 +288,7 @@ public class Finder extends GFinder // TODO: add switches to control what is searched - sequences, IDS, // descriptions, features jalview.analysis.Finder finder = new jalview.analysis.Finder( - av.getAlignment(), av.getSelectionGroup(), seqIndex, resIndex); + av.getAlignment(), av.getSelectionGroup(), seqIndex, colIndex); finder.setCaseSensitive(caseSensitive.isSelected()); finder.setIncludeDescription(searchDescription.isSelected()); @@ -299,10 +296,10 @@ public class Finder extends GFinder finder.find(searchString); - seqIndex = finder.getSeqIndex(); - resIndex = finder.getResIndex(); + seqIndex = finder.getSequenceIndex(); + colIndex = finder.getColumnIndex(); seqIndices.put(av, seqIndex); - resIndices.put(av, resIndex); + colIndices.put(av, colIndex); searchResults = finder.getSearchResults(); Vector idMatch = finder.getIdMatch(); @@ -325,7 +322,7 @@ public class Finder extends GFinder JvOptionPane.showInternalMessageDialog(this, MessageManager.getString("label.finished_searching"), null, JvOptionPane.INFORMATION_MESSAGE); - resIndex = -1; + colIndex = -1; seqIndex = 0; } else @@ -346,7 +343,7 @@ public class Finder extends GFinder } JvOptionPane.showInternalMessageDialog(this, message, null, JvOptionPane.INFORMATION_MESSAGE); - resIndex = -1; + colIndex = -1; seqIndex = 0; } }