Skip to content

Commit 1927b39

Browse files
frauzufallctrueden
authored andcommitted
searchbar: fix selection, fix freeze on search text deletion
1 parent d245640 commit 1927b39

File tree

2 files changed

+15
-19
lines changed

2 files changed

+15
-19
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
package org.scijava.search.module;
3131

32+
import java.util.Collections;
3233
import java.util.LinkedHashSet;
3334
import java.util.List;
3435
import java.util.stream.Collectors;
@@ -68,6 +69,8 @@ public String title() {
6869

6970
@Override
7071
public List<SearchResult> search(final String text, final boolean fuzzy) {
72+
if (text.isEmpty()) return Collections.emptyList();
73+
7174
final String baseDir = //
7275
appService.getApp().getBaseDirectory().getAbsolutePath();
7376

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

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,7 @@
7070
import javax.swing.ScrollPaneConstants;
7171
import javax.swing.SwingUtilities;
7272
import javax.swing.UIManager;
73-
import javax.swing.border.Border;
74-
import javax.swing.border.CompoundBorder;
7573
import javax.swing.border.EmptyBorder;
76-
import javax.swing.border.LineBorder;
7774
import javax.swing.event.DocumentEvent;
7875
import javax.swing.event.DocumentListener;
7976
import javax.swing.text.html.HTMLDocument;
@@ -553,22 +550,18 @@ private void rebuild() {
553550
resultsList.setModel(listModel);
554551

555552
// TODO: Improve retainment of previous selection.
556-
// TODO: find out why this still leads to freezes
557-
// if(!searchTerm.isEmpty()) {
558-
// System.out.println(searchTerm);
559-
// if (previous == null) {
560-
// if(listModel.getSize() > 0){
561-
// System.out.println( "rebuild 5.1" );
562-
// resultsList.setSelectedIndex(firstResultIndex());
563-
// }
564-
// }
565-
// else {
566-
// if(listModel.contains(previous)){
567-
// System.out.println( "rebuild 5.2" );
568-
// resultsList.setSelectedValue(previous, true);
569-
// }
570-
// }
571-
// }
553+
if(!searchTerm.isEmpty()) {
554+
if (previous == null) {
555+
if(listModel.getSize() > 0){
556+
resultsList.setSelectedIndex(firstResultIndex());
557+
}
558+
}
559+
else {
560+
if(listModel.contains(previous)){
561+
resultsList.setSelectedValue(previous, true);
562+
}
563+
}
564+
}
572565
}
573566

574567
private Component icon(final String iconPath) {

0 commit comments

Comments
 (0)