Skip to content

Commit fd0b466

Browse files
frauzufallctrueden
authored andcommitted
searchbar: adds searcher supports(string) function
1 parent 2df7f36 commit fd0b466

File tree

4 files changed

+15
-2
lines changed

4 files changed

+15
-2
lines changed

src/main/java/org/scijava/search/DefaultSearchOperation.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,10 +130,11 @@ public void invalidate() {
130130
@Override
131131
public void run() {
132132
final boolean exclusive = searcher.exclusive(query);
133+
final boolean supported = searcher.supports(query);
133134
final boolean enabled = searchService.enabled(searcher);
134135
if (!valid) return;
135-
final List<SearchResult> results = enabled ? //
136-
searcher.search(query, fuzzy) : Collections.emptyList();
136+
final List<SearchResult> results = supported ? (enabled ? //
137+
searcher.search(query, fuzzy) : Collections.emptyList()) : null;
137138
if (!valid) return;
138139
for (final SearchListener l : listeners) {
139140
l.searchCompleted(new SearchEvent(searcher, results, exclusive));

src/main/java/org/scijava/search/Searcher.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public interface Searcher extends SciJavaPlugin {
2626
default boolean enabled() {
2727
return true;
2828
}
29+
30+
/** Whether this plugin supports a search of this term. */
31+
default boolean supports(String term) {
32+
return true;
33+
}
2934

3035
/** Gets whether this plugin wants exclusive rights to the given text. */
3136
default boolean exclusive(@SuppressWarnings("unused") final String text) {

src/main/java/org/scijava/search/snippet/SnippetSearcher.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ public String title() {
6464
// NB: A misnomer, but it's the term users are familiar with.
6565
return "Code snippets";
6666
}
67+
68+
@Override
69+
public boolean supports(final String text) {
70+
return text.startsWith("#!") || text.startsWith("!");
71+
}
6772

6873
@Override
6974
public boolean exclusive(final String text) {

src/main/java/org/scijava/ui/swing/search/SwingSearchBar.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -463,6 +463,8 @@ private void rebuild() {
463463
final List<SearchResult> completeResults = //
464464
allResults.get(searcher.getClass()).results();
465465

466+
if (completeResults == null) continue;
467+
466468
// Add section header.
467469
listModel.addElement(new SearchResultHeader(searcher));
468470

0 commit comments

Comments
 (0)