+ // TODO: add enablers for 'SelectSequences' or 'SelectColumns' or
+ // 'SelectRegion' selection
+ if (idMatch.isEmpty() && searchResults == null)
+ {
+ JvOptionPane.showInternalMessageDialog(this,
+ MessageManager.getString("label.finished_searching"), null,
+ JvOptionPane.INFORMATION_MESSAGE);
+ }
+ else
+ {
+ if (doFindAll)
+ {
+ // then we report the matches that were found
+ String message = (idMatch.size() > 0) ? "" + idMatch.size() + " IDs"
+ : "";
+ if (searchResults != null)
+ {
+ if (idMatch.size() > 0 && searchResults.getSize() > 0)
+ {
+ message += " and ";
+ }
+ message += searchResults.getSize()
+ + " subsequence matches found.";
+ }
+ JvOptionPane.showInternalMessageDialog(this, message, null,
+ JvOptionPane.INFORMATION_MESSAGE);
+ }
+ }
+ searchBox.updateCache();
+ }
+
+ /**
+ * Displays an error dialog, and answers false, if the search string is
+ * invalid, else answers true.
+ *
+ * @param searchString
+ * @return
+ */
+ protected boolean isInvalidSearchString(String searchString)
+ {
+ String error = getSearchValidationError(searchString);
+ if (error == null)