Skip to content

Commit 9fe6008

Browse files
frauzufallctrueden
authored andcommitted
searchbar: enable/disable searchers
1 parent b5d96c9 commit 9fe6008

File tree

6 files changed

+42
-11
lines changed

6 files changed

+42
-11
lines changed

src/main/java/org/scijava/search/module/ModuleSearcher.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
package org.scijava.search.module;
3333

34+
import java.util.ArrayList;
3435
import java.util.List;
3536
import java.util.stream.Collectors;
3637

@@ -42,6 +43,7 @@
4243
import org.scijava.plugin.Parameter;
4344
import org.scijava.plugin.Plugin;
4445
import org.scijava.search.SearchResult;
46+
import org.scijava.search.SearchService;
4547
import org.scijava.search.Searcher;
4648

4749
/**
@@ -60,6 +62,9 @@ public class ModuleSearcher implements Searcher {
6062

6163
@Parameter
6264
private AppService appService;
65+
66+
@Parameter
67+
private SearchService searchService;
6368

6469
@Override
6570
public String title() {
@@ -69,6 +74,7 @@ public String title() {
6974

7075
@Override
7176
public List<SearchResult> search(final String text, final boolean fuzzy) {
77+
if(!searchService.enabled(this)) return new ArrayList<>();
7278
final String baseDir = //
7379
appService.getApp().getBaseDirectory().getAbsolutePath();
7480
return moduleService.getModules().stream() //

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.scijava.script.ScriptLanguage;
4343
import org.scijava.script.ScriptService;
4444
import org.scijava.search.SearchResult;
45+
import org.scijava.search.SearchService;
4546
import org.scijava.search.Searcher;
4647

4748
/**
@@ -54,6 +55,9 @@ public class SnippetSearcher implements Searcher {
5455

5556
@Parameter
5657
private ScriptService scriptService;
58+
59+
@Parameter
60+
private SearchService searchService;
5761

5862
@Override
5963
public String title() {
@@ -68,6 +72,7 @@ public boolean exclusive(final String text) {
6872

6973
@Override
7074
public List<SearchResult> search(final String text, final boolean fuzzy) {
75+
if(!searchService.enabled(this)) return new ArrayList<>();
7176
if (text.startsWith("#!")) {
7277
final String[] tokens = text.split("\\s", 2);
7378
if (tokens.length < 2) return Collections.emptyList();

src/main/java/org/scijava/search/web/BISESearcher.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@
44
import java.io.IOException;
55
import java.net.URL;
66
import java.net.URLEncoder;
7+
import java.util.ArrayList;
78
import java.util.List;
89

910
import javax.xml.parsers.DocumentBuilder;
1011
import javax.xml.parsers.DocumentBuilderFactory;
1112
import javax.xml.parsers.ParserConfigurationException;
1213

14+
import org.scijava.plugin.Parameter;
1315
import org.scijava.search.SearchResult;
16+
import org.scijava.search.SearchService;
1417
import org.w3c.dom.Document;
1518
import org.w3c.dom.Node;
1619
import org.w3c.dom.NodeList;
@@ -24,13 +27,19 @@
2427
*/
2528
//@Plugin(type = Searcher.class, name = "BISE")
2629
public class BISESearcher extends AbstractWebSearcher {
30+
31+
@Parameter
32+
private SearchService searchService;
2733

2834
public BISESearcher() {
2935
super("BISE");
3036
}
3137

3238
@Override
3339
public List<SearchResult> search(final String text, final boolean fuzzy) {
40+
41+
if(!searchService.enabled(this)) return new ArrayList<>();
42+
3443
try {
3544
// URL url = new URL("file:///c:/structure/temp/biii.eu_search2.html");
3645
final URL url = new URL("http://biii.eu/search?search_api_fulltext=" +

src/main/java/org/scijava/search/web/ImageJForumSearcher.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,15 @@
44
import java.io.IOException;
55
import java.net.URL;
66
import java.net.URLEncoder;
7+
import java.util.ArrayList;
78
import java.util.HashMap;
89
import java.util.List;
910
import java.util.Scanner;
1011

12+
import org.scijava.plugin.Parameter;
1113
import org.scijava.plugin.Plugin;
1214
import org.scijava.search.SearchResult;
15+
import org.scijava.search.SearchService;
1316
import org.scijava.search.Searcher;
1417

1518
/**
@@ -19,13 +22,17 @@
1922
*/
2023
@Plugin(type = Searcher.class, name = "ImageJ Forum")
2124
public class ImageJForumSearcher extends AbstractWebSearcher {
25+
26+
@Parameter
27+
private SearchService searchService;
2228

2329
public ImageJForumSearcher() {
2430
super("ImageJ Forum");
2531
}
2632

2733
@Override
2834
public List<SearchResult> search(final String text, final boolean fuzzy) {
35+
if(!searchService.enabled(this)) return new ArrayList<>();
2936
try {
3037
final URL url = new URL("http://forum.imagej.net/search?q=" + URLEncoder
3138
.encode(text) + "&source=imagej");

src/main/java/org/scijava/search/web/WikiSearcher.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@
44
import java.io.IOException;
55
import java.net.URL;
66
import java.net.URLEncoder;
7+
import java.util.ArrayList;
78
import java.util.List;
89

910
import javax.xml.parsers.DocumentBuilder;
1011
import javax.xml.parsers.DocumentBuilderFactory;
1112
import javax.xml.parsers.ParserConfigurationException;
1213

14+
import org.scijava.plugin.Parameter;
1315
import org.scijava.plugin.Plugin;
1416
import org.scijava.search.SearchResult;
17+
import org.scijava.search.SearchService;
1518
import org.scijava.search.Searcher;
1619
import org.w3c.dom.Document;
1720
import org.w3c.dom.Node;
@@ -26,13 +29,17 @@
2629
*/
2730
@Plugin(type = Searcher.class, name = "ImageJ Wiki")
2831
public class WikiSearcher extends AbstractWebSearcher {
32+
33+
@Parameter
34+
private SearchService searchService;
2935

3036
public WikiSearcher() {
3137
super("ImageJ Wiki");
3238
}
3339

3440
@Override
3541
public List<SearchResult> search(final String text, final boolean fuzzy) {
42+
if(!searchService.enabled(this)) return new ArrayList<>();
3643
try {
3744
final URL url = new URL(
3845
"http://imagej.net/index.php?title=Special%3ASearch&search=" +

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

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ public SwingSearchPanel() {
273273
if (isHeader(value)) {
274274
final Searcher searcher = ((SearchResultHeader) value).searcher();
275275
final JCheckBox headerBox = //
276-
new JCheckBox(searcher.title(), searcher.enabled());
276+
new JCheckBox(searcher.title(), searchService.enabled(searcher));
277277
headerBox.setFont(smaller(headerBox.getFont(), 2));
278278
headerBox.setBackground(HEADER_COLOR);
279279
headerCheckboxes.put(searcher.getClass(), headerBox);
@@ -322,13 +322,9 @@ public SwingSearchPanel() {
322322
final SearchResult result = resultsList.getSelectedValue();
323323
if (result == null || isHeader(result)) {
324324
if (result != null) {
325-
final JCheckBox checkBox = headerCheckboxes.get(
326-
((SearchResultHeader) result).searcher().getClass());
327-
System.out.println("GOT A CHECKBOX: " + checkBox);
328-
checkBox.setSelected(!checkBox.isSelected());
329-
checkBox.repaint();
330-
resultsList.repaint();
331-
System.out.println("TOGGLED IT: state -> " + checkBox.isSelected());
325+
final Searcher searcher = ((SearchResultHeader) result).searcher();
326+
searchService.setEnabled(searcher, !searchService.enabled(searcher));
327+
SwingSearchBar.this.search();
332328
}
333329

334330
// clear details pane
@@ -472,15 +468,16 @@ private void rebuild() {
472468
// Look up the results list.
473469
final List<SearchResult> completeResults = //
474470
allResults.get(searcher.getClass()).results();
471+
472+
// Add section header.
473+
listModel.addElement(new SearchResultHeader(searcher));
474+
475475
if (completeResults.isEmpty()) continue;
476476

477477
// Limit to the top MAX_RESULTS matches only.
478478
final List<SearchResult> results = completeResults.stream() //
479479
.limit(MAX_RESULTS).collect(Collectors.toList());
480480

481-
// Add section header.
482-
listModel.addElement(new SearchResultHeader(searcher));
483-
484481
// Add results as entries.
485482
for (final SearchResult result : results) {
486483
listModel.addElement(result);

0 commit comments

Comments
 (0)