Skip to content

Commit 8c51e7a

Browse files
authored
Update PreviewView to listen for library search queries (#11659)
* Update PreviewView to listen for library search queries * unnecessary updates in PreviewViewer when hovering over entries * Update CHANGELOG.md * Update CommentsTabTest.java * Invert "if" condition
1 parent 75ace11 commit 8c51e7a

23 files changed

+127
-131
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Note that this project **does not** adhere to [Semantic Versioning](https://semv
4848
- We fixed an issue with query transformers (JStor and others). [#11643](https://github.com/JabRef/jabref/pull/11643)
4949
- We fixed an issue where a new unsaved library was not marked with an asterisk. [#11519](https://github.com/JabRef/jabref/pull/11519)
5050
- We fixed an issue where JabRef starts without window decorations. [#11440](https://github.com/JabRef/jabref/pull/11440)
51+
- We fixed an issue where the entry preview highlight was not working when searching before opening the entry editor. [#11659](https://github.com/JabRef/jabref/pull/11659)
5152

5253
### Removed
5354

src/main/java/org/jabref/gui/collab/DatabaseChangeDetailsViewFactory.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.jabref.gui.collab;
22

33
import org.jabref.gui.DialogService;
4-
import org.jabref.gui.StateManager;
54
import org.jabref.gui.collab.entryadd.EntryAdd;
65
import org.jabref.gui.collab.entrychange.EntryChange;
76
import org.jabref.gui.collab.entrychange.EntryChangeDetailsView;
@@ -31,7 +30,6 @@
3130
public class DatabaseChangeDetailsViewFactory {
3231
private final BibDatabaseContext databaseContext;
3332
private final DialogService dialogService;
34-
private final StateManager stateManager;
3533
private final ThemeManager themeManager;
3634
private final PreferencesService preferencesService;
3735
private final BibEntryTypesManager entryTypesManager;
@@ -40,15 +38,13 @@ public class DatabaseChangeDetailsViewFactory {
4038

4139
public DatabaseChangeDetailsViewFactory(BibDatabaseContext databaseContext,
4240
DialogService dialogService,
43-
StateManager stateManager,
4441
ThemeManager themeManager,
4542
PreferencesService preferencesService,
4643
BibEntryTypesManager entryTypesManager,
4744
PreviewViewer previewViewer,
4845
TaskExecutor taskExecutor) {
4946
this.databaseContext = databaseContext;
5047
this.dialogService = dialogService;
51-
this.stateManager = stateManager;
5248
this.themeManager = themeManager;
5349
this.preferencesService = preferencesService;
5450
this.entryTypesManager = entryTypesManager;
@@ -63,7 +59,6 @@ public DatabaseChangeDetailsView create(DatabaseChange databaseChange) {
6359
entryChange.getNewEntry(),
6460
databaseContext,
6561
dialogService,
66-
stateManager,
6762
themeManager,
6863
preferencesService,
6964
entryTypesManager,

src/main/java/org/jabref/gui/collab/DatabaseChangesResolverDialog.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import javafx.scene.layout.BorderPane;
1616

1717
import org.jabref.gui.DialogService;
18-
import org.jabref.gui.StateManager;
1918
import org.jabref.gui.preview.PreviewViewer;
2019
import org.jabref.gui.theme.ThemeManager;
2120
import org.jabref.gui.util.BaseDialog;
@@ -57,7 +56,6 @@ public class DatabaseChangesResolverDialog extends BaseDialog<Boolean> {
5756
private boolean areAllChangesDenied;
5857

5958
@Inject private UndoManager undoManager;
60-
@Inject private StateManager stateManager;
6159
@Inject private DialogService dialogService;
6260
@Inject private PreferencesService preferencesService;
6361
@Inject private ThemeManager themeManager;
@@ -101,8 +99,8 @@ public boolean areAllChangesDenied() {
10199

102100
@FXML
103101
private void initialize() {
104-
PreviewViewer previewViewer = new PreviewViewer(database, dialogService, preferencesService, stateManager, themeManager, taskExecutor);
105-
DatabaseChangeDetailsViewFactory databaseChangeDetailsViewFactory = new DatabaseChangeDetailsViewFactory(database, dialogService, stateManager, themeManager, preferencesService, entryTypesManager, previewViewer, taskExecutor);
102+
PreviewViewer previewViewer = new PreviewViewer(database, dialogService, preferencesService, themeManager, taskExecutor);
103+
DatabaseChangeDetailsViewFactory databaseChangeDetailsViewFactory = new DatabaseChangeDetailsViewFactory(database, dialogService, themeManager, preferencesService, entryTypesManager, previewViewer, taskExecutor);
106104

107105
viewModel = new ExternalChangesResolverViewModel(changes, undoManager);
108106

src/main/java/org/jabref/gui/collab/entrychange/EntryChangeDetailsView.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import javafx.scene.web.WebView;
1111

1212
import org.jabref.gui.DialogService;
13-
import org.jabref.gui.StateManager;
1413
import org.jabref.gui.collab.DatabaseChangeDetailsView;
1514
import org.jabref.gui.preview.PreviewViewer;
1615
import org.jabref.gui.theme.ThemeManager;
@@ -24,15 +23,12 @@
2423
import com.tobiasdiez.easybind.EasyBind;
2524

2625
public final class EntryChangeDetailsView extends DatabaseChangeDetailsView {
27-
private final PreviewWithSourceTab oldPreviewWithSourcesTab = new PreviewWithSourceTab();
28-
private final PreviewWithSourceTab newPreviewWithSourcesTab = new PreviewWithSourceTab();
2926
private boolean scrolling = false;
3027

3128
public EntryChangeDetailsView(BibEntry oldEntry,
3229
BibEntry newEntry,
3330
BibDatabaseContext databaseContext,
3431
DialogService dialogService,
35-
StateManager stateManager,
3632
ThemeManager themeManager,
3733
PreferencesService preferencesService,
3834
BibEntryTypesManager entryTypesManager,
@@ -44,7 +40,7 @@ public EntryChangeDetailsView(BibEntry oldEntry,
4440
onDisk.getStyleClass().add("lib-change-header");
4541

4642
// we need a copy here as we otherwise would set the same entry twice
47-
PreviewViewer previewClone = new PreviewViewer(databaseContext, dialogService, preferencesService, stateManager, themeManager, taskExecutor);
43+
PreviewViewer previewClone = new PreviewViewer(databaseContext, dialogService, preferencesService, themeManager, taskExecutor);
4844

4945
// The scroll bar used is not part of ScrollPane, but the attached WebView.
5046
WebView previewCloneView = (WebView) previewClone.getContent();
@@ -53,7 +49,9 @@ public EntryChangeDetailsView(BibEntry oldEntry,
5349
synchronizeScrolling(previewViewerView, previewCloneView);
5450
// TODO: Also sync scrolling for BibTeX view.
5551

52+
PreviewWithSourceTab oldPreviewWithSourcesTab = new PreviewWithSourceTab();
5653
TabPane oldEntryTabPane = oldPreviewWithSourcesTab.getPreviewWithSourceTab(oldEntry, databaseContext, preferencesService, entryTypesManager, previewClone, Localization.lang("Entry Preview"));
54+
PreviewWithSourceTab newPreviewWithSourcesTab = new PreviewWithSourceTab();
5755
TabPane newEntryTabPane = newPreviewWithSourcesTab.getPreviewWithSourceTab(newEntry, databaseContext, preferencesService, entryTypesManager, previewViewer, Localization.lang("Entry Preview"));
5856

5957
EasyBind.subscribe(oldEntryTabPane.getSelectionModel().selectedIndexProperty(), selectedIndex -> {

src/main/java/org/jabref/gui/entryeditor/CommentsTab.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,19 @@
1717
import javafx.scene.layout.RowConstraints;
1818

1919
import org.jabref.gui.DialogService;
20-
import org.jabref.gui.StateManager;
2120
import org.jabref.gui.autocompleter.SuggestionProviders;
2221
import org.jabref.gui.fieldeditors.FieldEditorFX;
2322
import org.jabref.gui.fieldeditors.FieldNameLabel;
2423
import org.jabref.gui.icon.IconTheme;
2524
import org.jabref.gui.theme.ThemeManager;
2625
import org.jabref.gui.undo.RedoAction;
2726
import org.jabref.gui.undo.UndoAction;
27+
import org.jabref.gui.util.OptionalObjectProperty;
2828
import org.jabref.gui.util.TaskExecutor;
2929
import org.jabref.logic.journals.JournalAbbreviationRepository;
3030
import org.jabref.logic.l10n.Localization;
3131
import org.jabref.logic.pdf.search.IndexingTaskManager;
32+
import org.jabref.logic.search.SearchQuery;
3233
import org.jabref.model.database.BibDatabaseContext;
3334
import org.jabref.model.entry.BibEntry;
3435
import org.jabref.model.entry.field.Field;
@@ -51,11 +52,11 @@ public CommentsTab(PreferencesService preferences,
5152
UndoAction undoAction,
5253
RedoAction redoAction,
5354
DialogService dialogService,
54-
StateManager stateManager,
5555
ThemeManager themeManager,
5656
IndexingTaskManager indexingTaskManager,
5757
TaskExecutor taskExecutor,
58-
JournalAbbreviationRepository journalAbbreviationRepository) {
58+
JournalAbbreviationRepository journalAbbreviationRepository,
59+
OptionalObjectProperty<SearchQuery> searchQueryProperty) {
5960
super(
6061
false,
6162
databaseContext,
@@ -65,11 +66,11 @@ public CommentsTab(PreferencesService preferences,
6566
redoAction,
6667
dialogService,
6768
preferences,
68-
stateManager,
6969
themeManager,
7070
taskExecutor,
7171
journalAbbreviationRepository,
72-
indexingTaskManager
72+
indexingTaskManager,
73+
searchQueryProperty
7374
);
7475
this.defaultOwner = preferences.getOwnerPreferences().getDefaultOwner().toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]", "-");
7576
setText(Localization.lang("Comments"));

src/main/java/org/jabref/gui/entryeditor/DeprecatedFieldsTab.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,17 @@
1010
import javafx.scene.control.Tooltip;
1111

1212
import org.jabref.gui.DialogService;
13-
import org.jabref.gui.StateManager;
1413
import org.jabref.gui.autocompleter.SuggestionProviders;
1514
import org.jabref.gui.icon.IconTheme;
1615
import org.jabref.gui.theme.ThemeManager;
1716
import org.jabref.gui.undo.RedoAction;
1817
import org.jabref.gui.undo.UndoAction;
18+
import org.jabref.gui.util.OptionalObjectProperty;
1919
import org.jabref.gui.util.TaskExecutor;
2020
import org.jabref.logic.journals.JournalAbbreviationRepository;
2121
import org.jabref.logic.l10n.Localization;
2222
import org.jabref.logic.pdf.search.IndexingTaskManager;
23+
import org.jabref.logic.search.SearchQuery;
2324
import org.jabref.model.database.BibDatabaseContext;
2425
import org.jabref.model.database.BibDatabaseMode;
2526
import org.jabref.model.entry.BibEntry;
@@ -42,13 +43,13 @@ public DeprecatedFieldsTab(BibDatabaseContext databaseContext,
4243
RedoAction redoAction,
4344
DialogService dialogService,
4445
PreferencesService preferences,
45-
StateManager stateManager,
4646
ThemeManager themeManager,
4747
IndexingTaskManager indexingTaskManager,
4848
BibEntryTypesManager entryTypesManager,
4949
TaskExecutor taskExecutor,
50-
JournalAbbreviationRepository journalAbbreviationRepository) {
51-
super(false, databaseContext, suggestionProviders, undoManager, undoAction, redoAction, dialogService, preferences, stateManager, themeManager, taskExecutor, journalAbbreviationRepository, indexingTaskManager);
50+
JournalAbbreviationRepository journalAbbreviationRepository,
51+
OptionalObjectProperty<SearchQuery> searchQueryProperty) {
52+
super(false, databaseContext, suggestionProviders, undoManager, undoAction, redoAction, dialogService, preferences, themeManager, taskExecutor, journalAbbreviationRepository, indexingTaskManager, searchQueryProperty);
5253
this.entryTypesManager = entryTypesManager;
5354

5455
setText(Localization.lang("Deprecated fields"));

src/main/java/org/jabref/gui/entryeditor/DetailOptionalFieldsTab.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
import javax.swing.undo.UndoManager;
44

55
import org.jabref.gui.DialogService;
6-
import org.jabref.gui.StateManager;
76
import org.jabref.gui.autocompleter.SuggestionProviders;
87
import org.jabref.gui.theme.ThemeManager;
98
import org.jabref.gui.undo.RedoAction;
109
import org.jabref.gui.undo.UndoAction;
10+
import org.jabref.gui.util.OptionalObjectProperty;
1111
import org.jabref.gui.util.TaskExecutor;
1212
import org.jabref.logic.journals.JournalAbbreviationRepository;
1313
import org.jabref.logic.l10n.Localization;
1414
import org.jabref.logic.pdf.search.IndexingTaskManager;
15+
import org.jabref.logic.search.SearchQuery;
1516
import org.jabref.model.database.BibDatabaseContext;
1617
import org.jabref.model.entry.BibEntryTypesManager;
1718
import org.jabref.preferences.PreferencesService;
@@ -27,12 +28,12 @@ public DetailOptionalFieldsTab(BibDatabaseContext databaseContext,
2728
RedoAction redoAction,
2829
DialogService dialogService,
2930
PreferencesService preferences,
30-
StateManager stateManager,
3131
ThemeManager themeManager,
3232
IndexingTaskManager indexingTaskManager,
3333
BibEntryTypesManager entryTypesManager,
3434
TaskExecutor taskExecutor,
35-
JournalAbbreviationRepository journalAbbreviationRepository) {
35+
JournalAbbreviationRepository journalAbbreviationRepository,
36+
OptionalObjectProperty<SearchQuery> searchQueryProperty) {
3637
super(
3738
Localization.lang("Optional fields 2"),
3839
false,
@@ -43,12 +44,12 @@ public DetailOptionalFieldsTab(BibDatabaseContext databaseContext,
4344
redoAction,
4445
dialogService,
4546
preferences,
46-
stateManager,
4747
themeManager,
4848
indexingTaskManager,
4949
entryTypesManager,
5050
taskExecutor,
51-
journalAbbreviationRepository
51+
journalAbbreviationRepository,
52+
searchQueryProperty
5253
);
5354
}
5455
}

src/main/java/org/jabref/gui/entryeditor/EntryEditor.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -278,21 +278,21 @@ private void navigateToNextEntry() {
278278
private List<EntryEditorTab> createTabs() {
279279
List<EntryEditorTab> tabs = new LinkedList<>();
280280

281-
tabs.add(new PreviewTab(databaseContext, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor));
281+
tabs.add(new PreviewTab(databaseContext, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor, libraryTab.searchQueryProperty()));
282282

283283
// Required, optional (important+detail), deprecated, and "other" fields
284-
tabs.add(new RequiredFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository));
285-
tabs.add(new ImportantOptionalFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository));
286-
tabs.add(new DetailOptionalFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository));
287-
tabs.add(new DeprecatedFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository));
288-
tabs.add(new OtherFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository));
284+
tabs.add(new RequiredFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
285+
tabs.add(new ImportantOptionalFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
286+
tabs.add(new DetailOptionalFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
287+
tabs.add(new DeprecatedFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
288+
tabs.add(new OtherFieldsTab(databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), bibEntryTypesManager, taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
289289

290290
// Comment Tab: Tab for general and user-specific comments
291-
tabs.add(new CommentsTab(preferencesService, databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor, journalAbbreviationRepository));
291+
tabs.add(new CommentsTab(preferencesService, databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
292292

293293
Map<String, Set<Field>> entryEditorTabList = getAdditionalUserConfiguredTabs();
294294
for (Map.Entry<String, Set<Field>> tab : entryEditorTabList.entrySet()) {
295-
tabs.add(new UserDefinedFieldsTab(tab.getKey(), tab.getValue(), databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, stateManager, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor, journalAbbreviationRepository));
295+
tabs.add(new UserDefinedFieldsTab(tab.getKey(), tab.getValue(), databaseContext, libraryTab.getSuggestionProviders(), undoManager, undoAction, redoAction, dialogService, preferencesService, themeManager, libraryTab.getIndexingTaskManager(), taskExecutor, journalAbbreviationRepository, libraryTab.searchQueryProperty()));
296296
}
297297

298298
tabs.add(new MathSciNetTab());

0 commit comments

Comments
 (0)