X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FFinder.java;h=a342736bd6f9c7d732cc8cbc5711059c3d5e6de9;hb=cce9a433443d6407b561679c4c489cdbfca2d12e;hp=3f8a54d27183dfc2afaa0ffede8c5460dbf681c4;hpb=ad15cff29620f960119f80176f1fd443da9f6763;p=jalview.git diff --git a/src/jalview/appletgui/Finder.java b/src/jalview/appletgui/Finder.java index 3f8a54d..a342736 100644 --- a/src/jalview/appletgui/Finder.java +++ b/src/jalview/appletgui/Finder.java @@ -20,10 +20,12 @@ */ package jalview.appletgui; -import jalview.datamodel.SearchResults; +import jalview.datamodel.SearchResultMatchI; +import jalview.datamodel.SearchResultsI; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.util.MessageManager; +import jalview.viewmodel.AlignmentViewport; import java.awt.Button; import java.awt.Checkbox; @@ -43,13 +45,13 @@ import java.util.Vector; public class Finder extends Panel implements ActionListener { - AlignViewport av; + AlignmentViewport av; AlignmentPanel ap; Frame frame; - SearchResults searchResults; + SearchResultsI searchResults; int seqIndex = 0; @@ -75,6 +77,7 @@ public class Finder extends Panel implements ActionListener frame.repaint(); frame.addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent evt) { ap.highlightSearchResults(null); @@ -83,6 +86,7 @@ public class Finder extends Panel implements ActionListener textfield.requestFocus(); } + @Override public void actionPerformed(ActionEvent evt) { if (evt.getSource() == textfield) @@ -112,14 +116,17 @@ public class Finder extends Panel implements ActionListener SequenceI[] seqs = new SequenceI[searchResults.getSize()]; SequenceFeature[] features = new SequenceFeature[searchResults .getSize()]; + String searchString = textfield.getText().trim(); - for (int i = 0; i < searchResults.getSize(); i++) + int i = 0; + for (SearchResultMatchI match : searchResults.getResults()) { - seqs[i] = searchResults.getResultSequence(i); + seqs[i] = match.getSequence().getDatasetSequence(); - features[i] = new SequenceFeature(textfield.getText().trim(), - "Search Results", null, searchResults.getResultStart(i), - searchResults.getResultEnd(i), "Search Results"); + features[i] = new SequenceFeature(searchString, + "Search Results", null, match.getStart(), match.getEnd(), + "Search Results"); + i++; } if (ap.seqPanel.seqCanvas.getFeatureRenderer().amendFeatures(seqs, @@ -151,7 +158,7 @@ public class Finder extends Panel implements ActionListener seqIndex = finder.getSeqIndex(); resIndex = finder.getResIndex(); searchResults = finder.getSearchResults(); - Vector idMatch = finder.getIdMatch(); + Vector idMatch = finder.getIdMatch(); boolean haveResults = false; // set or reset the GUI if ((idMatch.size() > 0)) @@ -203,16 +210,15 @@ public class Finder extends Panel implements ActionListener message += searchResults.getSize() + " subsequence matches."; } ap.alignFrame.statusBar.setText(MessageManager.formatMessage( - "label.search_results", new String[] - { searchString, message })); + "label.search_results", new String[] { searchString, + message })); } else { // TODO: indicate sequence and matching position in status bar ap.alignFrame.statusBar.setText(MessageManager.formatMessage( - "label.found_match_for", new String[] - { searchString })); + "label.found_match_for", new String[] { searchString })); } } } @@ -246,6 +252,7 @@ public class Finder extends Panel implements ActionListener textfield.setBounds(new Rectangle(40, 17, 133, 21)); textfield.addKeyListener(new java.awt.event.KeyAdapter() { + @Override public void keyTyped(KeyEvent e) { textfield_keyTyped(e);