int seqIndex = 0;
- int resIndex = 0;
+ int resIndex = -1;
public Finder(final AlignmentPanel ap)
{
else if (evt.getSource() == findAll)
{
- resIndex = 0;
+ resIndex = -1;
seqIndex = 0;
doSearch(true);
}
resIndex = finder.getResIndex();
searchResults = finder.getSearchResults();
Vector idMatch = finder.getIdMatch();
-
- if (searchResults.getSize() == 0 && idMatch.size() > 0)
+ boolean haveResults=false;
+ // set or reset the GUI
+ if ((idMatch.size() > 0))
{
+ haveResults=true;
ap.idPanel.highlightSearchResults(idMatch);
+ } else {
+ ap.idPanel.highlightSearchResults(null);
}
if (searchResults.getSize() > 0)
{
+ haveResults=true;
createNewGroup.setEnabled(true);
}
else
{
searchResults = null;
- resIndex = 0;
- seqIndex = 0;
}
// if allResults is null, this effectively switches displaySearch flag in
// seqCanvas
ap.highlightSearchResults(searchResults);
-
+ // TODO: add enablers for 'SelectSequences' or 'SelectColumns' or
+ // 'SelectRegion' selection
+ if (!haveResults)
+ {
+ ap.alignFrame.statusBar.setText("Finished searching.");
+ resIndex = -1;
+ seqIndex = 0;
+ }
if (findAll)
{
- String message = (searchResults == null ? 0 : searchResults.getSize())
- + " matches found.";
+ String message = (idMatch.size()>0) ? ""+idMatch.size()+" IDs" : "";
+ if (idMatch.size()>0 && searchResults!=null && searchResults.getSize()>0) {
+ message += " and ";
+ }
+ if (searchResults!=null) {
+ message += searchResults.getSize() + " subsequence matches.";
+ }
ap.alignFrame.statusBar.setText("Search results: " + searchString
+ " : " + message);
+
}
}
int seqIndex = 0;
- int resIndex = 0;
+ int resIndex = -1;
SearchResults searchResults;
{
if (getFocusedViewport())
{
- resIndex = 0;
+ resIndex = -1;
seqIndex = 0;
doSearch(true);
}
}
/**
- * DOCUMENT ME!
+ * incrementally search the alignment
*
* @param findAll
- * DOCUMENT ME!
+ * true means find all results and raise a dialog box
*/
void doSearch(boolean findAll)
{
searchResults = finder.getSearchResults(); // find(regex,
// caseSensitive.isSelected(), )
Vector idMatch = finder.getIdMatch();
+ boolean haveResults=false;
// set or reset the GUI
- if ((searchResults.getSize() == 0) && (idMatch.size() > 0))
+ if ((idMatch.size() > 0))
{
+ haveResults=true;
ap.idPanel.highlightSearchResults(idMatch);
+ } else {
+ ap.idPanel.highlightSearchResults(null);
}
-
- int resultSize = searchResults.getSize();
-
+
if (searchResults.getSize() > 0)
{
+ haveResults=true;
createNewGroup.setEnabled(true);
}
else
ap.highlightSearchResults(searchResults);
// TODO: add enablers for 'SelectSequences' or 'SelectColumns' or
// 'SelectRegion' selection
- if (!findAll && resultSize == 0)
+ if (!haveResults)
{
JOptionPane.showInternalMessageDialog(this, "Finished searching",
null, JOptionPane.INFORMATION_MESSAGE);
- resIndex = 0;
+ resIndex = -1;
seqIndex = 0;
}
if (findAll)
{
- String message = resultSize + " matches found.";
+ String message = (idMatch.size()>0) ? ""+idMatch.size()+" IDs" : "";
+ if (idMatch.size()>0 && searchResults.getSize()>0) {
+ message += " and ";
+ }
+ message += searchResults.getSize() + " subsequence matches found.";
JOptionPane.showInternalMessageDialog(this, message, null,
JOptionPane.INFORMATION_MESSAGE);
+ resIndex = -1;
+ seqIndex = 0;
}
}