Skip to content

Commit 2b36941

Browse files
Use the existing duplicate checker
1 parent 57673bc commit 2b36941

1 file changed

Lines changed: 12 additions & 11 deletions

File tree

src/main/java/org/jabref/gui/entryeditor/citationrelationtab/CitationRelationsTab.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@
4343
import org.jabref.gui.util.NoSelectionModel;
4444
import org.jabref.gui.util.TaskExecutor;
4545
import org.jabref.gui.util.ViewModelListCellFactory;
46+
import org.jabref.logic.database.DuplicateCheck;
4647
import org.jabref.logic.l10n.Localization;
4748
import org.jabref.model.database.BibDatabaseContext;
49+
import org.jabref.model.database.BibDatabaseModeDetection;
4850
import org.jabref.model.entry.BibEntry;
51+
import org.jabref.model.entry.BibEntryTypesManager;
4952
import org.jabref.model.entry.field.StandardField;
5053
import org.jabref.model.entry.identifier.DOI;
5154
import org.jabref.model.strings.StringUtil;
@@ -78,6 +81,7 @@ public class CitationRelationsTab extends EntryEditorTab {
7881
private final TaskExecutor taskExecutor;
7982
private final BibEntryRelationsRepository bibEntryRelationsRepository;
8083
private final CitationsRelationsTabViewModel citationsRelationsTabViewModel;
84+
private final DuplicateCheck duplicateCheck;
8185

8286
public CitationRelationsTab(EntryEditorPreferences preferences, DialogService dialogService,
8387
BibDatabaseContext databaseContext, UndoManager undoManager,
@@ -95,6 +99,7 @@ public CitationRelationsTab(EntryEditorPreferences preferences, DialogService di
9599
setText(Localization.lang("Citation relations"));
96100
setTooltip(new Tooltip(Localization.lang("Show articles related by citation")));
97101

102+
this.duplicateCheck = new DuplicateCheck(new BibEntryTypesManager());
98103
this.bibEntryRelationsRepository = new BibEntryRelationsRepository(new SemanticScholarFetcher(preferencesService.getImporterPreferences()),
99104
new BibEntryRelationsCache());
100105
citationsRelationsTabViewModel = new CitationsRelationsTabViewModel(databaseContext, preferencesService, undoManager, stateManager, dialogService, fileUpdateMonitor, Globals.TASK_EXECUTOR);
@@ -389,17 +394,13 @@ private void onSearchForRelationsSucceed(BibEntry entry, CheckListView<CitationR
389394
hideNodes(abortButton, progress);
390395

391396
observableList.setAll(fetchedList.stream().map(entr -> {
392-
for (BibEntry databaseEntry : databaseContext.getDatabase().getEntries()) {
393-
Optional<String> title1Optional = databaseEntry.getTitle();
394-
Optional<String> title2Optional = entr.getTitle();
395-
if (title1Optional.isPresent() && title2Optional.isPresent()) {
396-
String title1 = title1Optional.get().replaceAll("[{}]", "").toLowerCase();
397-
String title2 = title2Optional.get().replaceAll("[{}]", "").toLowerCase();
398-
399-
if (title1.equals(title2)) {
400-
return new CitationRelationItem(entr, databaseEntry, true);
401-
}
402-
}
397+
Optional<BibEntry> duplicate = duplicateCheck.containsDuplicate(
398+
databaseContext.getDatabase(),
399+
entr,
400+
BibDatabaseModeDetection.inferMode(databaseContext.getDatabase()));
401+
402+
if (duplicate.isPresent()) {
403+
return new CitationRelationItem(entr, duplicate.get(), true);
403404
}
404405
return new CitationRelationItem(entr, null, false);
405406
}).collect(Collectors.toList()));

0 commit comments

Comments
 (0)