Skip to content

Commit 4ab11ca

Browse files
subhramitSiedlerchrkoppor
authored
Selected SLR catalogs: maintain preferences abstraction level (JabRef#11667)
* Attempt: Persist selection of databases * Use ObservableSet * ObservableList * set fetchers * Revise architecture * Revise test * Fix indent * Fix indent 2 * Add changelog entry * Fix indent * Update CHANGELOG.md * Chris' update Co-authored-by: Christoph <siedlerkiller@gmail.com> * Update src/main/java/org/jabref/preferences/WorkspacePreferences.java Co-authored-by: Christoph <siedlerkiller@gmail.com> * Update src/main/java/org/jabref/preferences/JabRefPreferences.java Co-authored-by: Christoph <siedlerkiller@gmail.com> * !Remove duplicated line * Return ObservableList * Remove unused import * Rename foreach loop variable * Rename foreach loop variable * Rename fetcher->catalog * Fix overwriting of existing study catalogs * Merge upstream/main * Fix merge issue * Persist for edits on existing studies * Save preferences only on a "new run" or "save". * Maintain abstraction --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Oliver Kopp <kopp.dev@gmail.com>
1 parent 3eb585f commit 4ab11ca

File tree

3 files changed

+20
-20
lines changed

3 files changed

+20
-20
lines changed

src/main/java/org/jabref/gui/slr/ManageStudyDefinitionView.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,16 +159,16 @@ private void initialize() {
159159
viewModel = new ManageStudyDefinitionViewModel(
160160
prefs.getImportFormatPreferences(),
161161
prefs.getImporterPreferences(),
162-
dialogService,
163-
prefs);
162+
prefs.getWorkspacePreferences(),
163+
dialogService);
164164
} else {
165165
viewModel = new ManageStudyDefinitionViewModel(
166166
study.get(),
167167
pathToStudyDataDirectory,
168168
prefs.getImportFormatPreferences(),
169169
prefs.getImporterPreferences(),
170-
dialogService,
171-
prefs);
170+
prefs.getWorkspacePreferences(),
171+
dialogService);
172172

173173
// The directory of the study cannot be changed
174174
studyDirectory.setEditable(false);

src/main/java/org/jabref/gui/slr/ManageStudyDefinitionViewModel.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import org.jabref.model.study.Study;
3333
import org.jabref.model.study.StudyDatabase;
3434
import org.jabref.model.study.StudyQuery;
35-
import org.jabref.preferences.PreferencesService;
35+
import org.jabref.preferences.WorkspacePreferences;
3636

3737
import org.slf4j.Logger;
3838
import org.slf4j.LoggerFactory;
@@ -61,15 +61,15 @@ public class ManageStudyDefinitionViewModel {
6161

6262
private final DialogService dialogService;
6363

64-
private final PreferencesService preferencesService;
64+
private final WorkspacePreferences workspacePreferences;
6565

6666
/**
6767
* Constructor for a new study
6868
*/
6969
public ManageStudyDefinitionViewModel(ImportFormatPreferences importFormatPreferences,
7070
ImporterPreferences importerPreferences,
71-
DialogService dialogService,
72-
PreferencesService preferencesService) {
71+
WorkspacePreferences workspacePreferences,
72+
DialogService dialogService) {
7373
databases.addAll(WebFetchers.getSearchBasedFetchers(importFormatPreferences, importerPreferences)
7474
.stream()
7575
.map(SearchBasedFetcher::getName)
@@ -82,7 +82,7 @@ public ManageStudyDefinitionViewModel(ImportFormatPreferences importFormatPrefer
8282
})
8383
.toList());
8484
this.dialogService = Objects.requireNonNull(dialogService);
85-
this.preferencesService = Objects.requireNonNull(preferencesService);
85+
this.workspacePreferences = Objects.requireNonNull(workspacePreferences);
8686
}
8787

8888
/**
@@ -95,8 +95,8 @@ public ManageStudyDefinitionViewModel(Study study,
9595
Path studyDirectory,
9696
ImportFormatPreferences importFormatPreferences,
9797
ImporterPreferences importerPreferences,
98-
DialogService dialogService,
99-
PreferencesService preferencesService) {
98+
WorkspacePreferences workspacePreferences,
99+
DialogService dialogService) {
100100
// copy the content of the study object into the UI fields
101101
authors.addAll(Objects.requireNonNull(study).getAuthors());
102102
title.setValue(study.getTitle());
@@ -117,7 +117,7 @@ public ManageStudyDefinitionViewModel(Study study,
117117

118118
this.directory.set(Objects.requireNonNull(studyDirectory).toString());
119119
this.dialogService = Objects.requireNonNull(dialogService);
120-
this.preferencesService = Objects.requireNonNull(preferencesService);
120+
this.workspacePreferences = Objects.requireNonNull(workspacePreferences);
121121
}
122122

123123
public StringProperty getTitle() {
@@ -226,7 +226,7 @@ public void deleteQuery(String item) {
226226
}
227227

228228
public void initializeSelectedCatalogs() {
229-
List<String> selectedCatalogs = preferencesService.getWorkspacePreferences().getSelectedSlrCatalogs();
229+
List<String> selectedCatalogs = workspacePreferences.getSelectedSlrCatalogs();
230230
for (StudyCatalogItem catalog : databases) {
231231
catalog.setEnabled(selectedCatalogs.contains(catalog.getName()));
232232
}
@@ -238,6 +238,6 @@ public void updateSelectedCatalogs() {
238238
.map(StudyCatalogItem::getName)
239239
.collect(Collectors.toList());
240240

241-
preferencesService.getWorkspacePreferences().setSelectedSlrCatalogs(selectedCatalogsList);
241+
workspacePreferences.setSelectedSlrCatalogs(selectedCatalogsList);
242242
}
243243
}

src/test/java/org/jabref/gui/slr/ManageStudyDefinitionViewModelTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import org.jabref.logic.importer.ImporterPreferences;
99
import org.jabref.model.study.Study;
1010
import org.jabref.model.study.StudyDatabase;
11-
import org.jabref.preferences.PreferencesService;
11+
import org.jabref.preferences.WorkspacePreferences;
1212

1313
import org.junit.jupiter.api.BeforeEach;
1414
import org.junit.jupiter.api.Test;
@@ -21,21 +21,21 @@
2121
class ManageStudyDefinitionViewModelTest {
2222
private ImportFormatPreferences importFormatPreferences;
2323
private ImporterPreferences importerPreferences;
24+
private WorkspacePreferences workspacePreferences;
2425
private DialogService dialogService;
25-
private PreferencesService preferencesService;
2626

2727
@BeforeEach
2828
void setUp() {
2929
// code taken from org.jabref.logic.importer.WebFetchersTest.setUp
3030
importFormatPreferences = mock(ImportFormatPreferences.class, Answers.RETURNS_DEEP_STUBS);
3131
importerPreferences = mock(ImporterPreferences.class, Answers.RETURNS_DEEP_STUBS);
32+
workspacePreferences = mock(WorkspacePreferences.class, Answers.RETURNS_DEEP_STUBS);
3233
dialogService = mock(DialogService.class);
33-
preferencesService = mock(PreferencesService.class);
3434
}
3535

3636
@Test
3737
void emptyStudyConstructorFillsDatabasesCorrectly() {
38-
ManageStudyDefinitionViewModel manageStudyDefinitionViewModel = new ManageStudyDefinitionViewModel(importFormatPreferences, importerPreferences, dialogService, preferencesService);
38+
ManageStudyDefinitionViewModel manageStudyDefinitionViewModel = new ManageStudyDefinitionViewModel(importFormatPreferences, importerPreferences, workspacePreferences, dialogService);
3939
assertEquals(List.of(
4040
new StudyCatalogItem("ACM Portal", true),
4141
new StudyCatalogItem("ArXiv", false),
@@ -106,7 +106,7 @@ private ManageStudyDefinitionViewModel getManageStudyDefinitionViewModel(Path te
106106
tempDir,
107107
importFormatPreferences,
108108
importerPreferences,
109-
dialogService,
110-
preferencesService);
109+
workspacePreferences,
110+
dialogService);
111111
}
112112
}

0 commit comments

Comments
 (0)