Skip to content

Commit

Permalink
Add search query update result count
Browse files Browse the repository at this point in the history
  • Loading branch information
Siedlerchr committed Apr 24, 2019
1 parent 82a746a commit b374c0e
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/main/java/org/jabref/gui/StateManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
import java.util.stream.Collectors;

import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ReadOnlyListProperty;
import javafx.beans.property.ReadOnlyListWrapper;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.ObservableMap;
Expand All @@ -34,6 +36,7 @@ public class StateManager {
private final ObservableList<BibEntry> selectedEntries = FXCollections.observableArrayList();
private final ObservableMap<BibDatabaseContext, ObservableList<GroupTreeNode>> selectedGroups = FXCollections.observableHashMap();
private final OptionalObjectProperty<SearchQuery> activeSearchQuery = OptionalObjectProperty.empty();
private final IntegerProperty searchResultSize = new SimpleIntegerProperty();

public StateManager() {
activeGroups.bind(Bindings.valueAt(selectedGroups, activeDatabase.orElse(null)));
Expand Down Expand Up @@ -79,7 +82,7 @@ public Optional<BibDatabaseContext> getActiveDatabase() {

public List<BibEntry> getEntriesInCurrentDatabase() {
return OptionalUtil.flatMap(activeDatabase.get(), BibDatabaseContext::getEntries)
.collect(Collectors.toList());
.collect(Collectors.toList());
}

public void clearSearchQuery() {
Expand All @@ -89,4 +92,12 @@ public void clearSearchQuery() {
public void setSearchQuery(SearchQuery searchQuery) {
activeSearchQuery.setValue(Optional.of(searchQuery));
}

public IntegerProperty searchResultSizeProperty() {
return searchResultSize;
}

public void setSearchResultSize(int size) {
searchResultSize.setValue(size);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import java.util.Optional;

import javafx.beans.binding.Bindings;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
Expand All @@ -30,7 +31,11 @@ public MainTableDataModel(BibDatabaseContext context) {
entriesFiltered.predicateProperty().bind(
Bindings.createObjectBinding(() -> this::isMatched,
Globals.stateManager.activeGroupProperty(), Globals.stateManager.activeSearchQueryProperty())

);
entriesFiltered.addListener((ListChangeListener<BibEntryTableViewModel>) c -> {
Globals.stateManager.setSearchResultSize(entriesFiltered.size());
});

// We need to wrap the list since otherwise sorting in the table does not work
entriesSorted = new SortedList<>(entriesFiltered);
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/org/jabref/gui/search/GlobalSearchBar.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
import org.jabref.gui.keyboard.KeyBinding;
import org.jabref.gui.keyboard.KeyBindingRepository;
import org.jabref.gui.maintable.MainTable;
import org.jabref.gui.search.rules.describer.SearchDescribers;
import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.logic.l10n.Localization;
import org.jabref.logic.search.SearchQuery;
Expand Down Expand Up @@ -208,6 +209,12 @@ public void performSearch() {
}

Globals.stateManager.setSearchQuery(searchQuery);

updateResults(Globals.stateManager.searchResultSizeProperty().get(),
SearchDescribers.getSearchDescriberFor(searchQuery).getDescription(),
searchQuery.isGrammarBasedSearch());
getSearchQueryHighlightObservable().fireSearchlistenerEvent(searchQuery);

}

private void informUserAboutInvalidSearchQuery() {
Expand Down

0 comments on commit b374c0e

Please sign in to comment.