Remove object redundancy, miscellaneous refactoring#15332
Remove object redundancy, miscellaneous refactoring#15332calixtus merged 5 commits intoJabRef:mainfrom
Conversation
Signed-off-by: subhramit <subhramit.bb@live.in>
Review Summary by QodoRemove object redundancy and refactor preference handling
WalkthroughsDescription• Remove redundant constructor parameters from GroupTreeViewModel and OpenOfficePanel • Derive FieldPreferences and other preferences from parent GuiPreferences object • Replace Unicode escape sequences with direct em-dash characters • Clean up unused imports and fix comment formatting Diagramflowchart LR
GP["GuiPreferences"]
GP -- "getFieldPreferences()" --> FP["FieldPreferences"]
GP -- "getOpenOfficePreferences()" --> OOP["OpenOfficePreferences"]
GP -- "getCitationKeyPatternPreferences()" --> CKPP["CitationKeyPatternPreferences"]
GP -- "getLayoutFormatterPreferences()" --> LFP["LayoutFormatterPreferences"]
GP -- "getExternalApplicationsPreferences()" --> EAP["ExternalApplicationsPreferences"]
GTVM["GroupTreeViewModel"]
GP --> GTVM
OOP["OpenOfficePanel"]
GP --> OOP
File Changes1. jabgui/src/main/java/org/jabref/gui/LibraryTab.java
|
This comment was marked as resolved.
This comment was marked as resolved.
Signed-off-by: subhramit <subhramit.bb@live.in>
This comment has been minimized.
This comment has been minimized.
Signed-off-by: subhramit <subhramit.bb@live.in>
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| uniquePathPart.ifPresent(part -> tabTitle.append(" \u2013 ").append(part)); | ||
| uniquePathPart.ifPresent(part -> tabTitle.append(" – ").append(part)); | ||
| toolTipText.append(databasePath.toAbsolutePath()); | ||
|
|
||
| if (databaseLocation == DatabaseLocation.SHARED) { | ||
| tabTitle.append(" \u2013 "); | ||
| tabTitle.append(" – "); |
There was a problem hiding this comment.
This was chosen deliberately, just to show that this is not a simple dash. We had a comment there before, don't know why it was removed.
There was a problem hiding this comment.
isn't u+2013 just an en-dash? (–)
It is not replaced with a hyphen (-), I just took intellij's sugesstion
There was a problem hiding this comment.
Oh nevertheless I see your point, it can be confusing.
I can either revert and add the comment that it's deliberately chosen
Or keep this and just add the comment that this is an en-dash and not a hyphen
There was a problem hiding this comment.
already edited and added comment
✅ All tests passed ✅🏷️ Commit: c7e6c70 Learn more about TestLens at testlens.app. |
* Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com>
* Close entry editor when last library is closed When no library tab is active, the entry editor remained visible. Added close() call in the activeTabProperty listener's else branch to handle the zero-libraries-open case. Fixes #13125 * Update CHANGELOG for #13125 * Fix case-insensitive DOI comparison in duplicate detection (#12967) * Chore(deps): Bump org.gradlex:java-module-dependencies in /build-logic (#15328) Bumps [org.gradlex:java-module-dependencies](https://github.com/gradlex-org/java-module-dependencies) from 1.12 to 1.12.1. - [Release notes](https://github.com/gradlex-org/java-module-dependencies/releases) - [Changelog](https://github.com/gradlex-org/java-module-dependencies/blob/main/CHANGELOG.md) - [Commits](gradlex-org/java-module-dependencies@v1.12...v1.12.1) --- updated-dependencies: - dependency-name: org.gradlex:java-module-dependencies dependency-version: 1.12.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.openrewrite.rewrite from 7.26.0 to 7.28.1 (#15326) Bumps org.openrewrite.rewrite from 7.26.0 to 7.28.1. --- updated-dependencies: - dependency-name: org.openrewrite.rewrite dependency-version: 7.28.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.mockito:mockito-core in /versions (#15330) Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](mockito/mockito@v5.22.0...v5.23.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-version: 5.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.cyclonedx.bom from 3.2.0 to 3.2.1 (#15327) Bumps org.cyclonedx.bom from 3.2.0 to 3.2.1. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump com.squareup.okio:okio-jvm in /versions (#15329) Bumps [com.squareup.okio:okio-jvm](https://github.com/square/okio) from 3.16.4 to 3.17.0. - [Changelog](https://github.com/square/okio/blob/master/CHANGELOG.md) - [Commits](square/okio@parent-3.16.4...parent-3.17.0) --- updated-dependencies: - dependency-name: com.squareup.okio:okio-jvm dependency-version: 3.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * New translations jabref_en.properties (Italian) (#15334) * RIS export SP/EP fields when pages contain Unicode en-dash or em-dash (#15315) * Extend the split regex to match en-dash and em-dash * Added tests --------- Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Remove object redundancy, miscellaneous refactoring (#15332) * Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Add drag-and-drop support for Citation Relations tab (#15181) * Add drag-and-drop support for Citation Relations tab - Implement drag detection in CitationRelationsTab to allow dragging entries - Add drag support to ViewModelListCellFactory - Fix NullPointerException in FrameDndHandler when dropping onto tabs without IDs - Fixes #15135 * Fix: correctly set drop completion status for entries * Fix: Add Unreleased section and moved changelog entries * Fix CHANGELOG formatting and upstream linter errors; removed empty groups * Fix code consistency for cr * Add explicit type * Consistency in CHANGELOG.md --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Update dependency org.eclipse.jgit:org.eclipse.jgit.pgm to v7.6.0.202603022253-r (#15335) * Chore(deps): Bump org.cyclonedx.bom from 3.2.1 to 3.2.2 (#15337) Bumps org.cyclonedx.bom from 3.2.1 to 3.2.2. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.eclipse.jgit:org.eclipse.jgit in /versions (#15338) Bumps [org.eclipse.jgit:org.eclipse.jgit](https://github.com/eclipse-jgit/jgit) from 7.5.0.202512021534-r to 7.6.0.202603022253-r. - [Commits](eclipse-jgit/jgit@v7.5.0.202512021534-r...v7.6.0.202603022253-r) --- updated-dependencies: - dependency-name: org.eclipse.jgit:org.eclipse.jgit dependency-version: 7.6.0.202603022253-r dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add 'All' citation fetcher that aggregates results from all providers (#15292) * Add 'All' citation fetcher that aggregates and deduplicates results from all providers - Implements CitationFetcher as AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Deduplicates results using DuplicateCheck with BibDatabaseMode.BIBTEX - Returns maximum citation count across all providers - Tolerates individual provider failures gracefully - Adds ALL entry to CitationFetcherType enum and factory method - Covers behaviour with unit tests (failure tolerance, deduplication, max count) Closes #15029 * Add 'All' citation fetcher that aggregates results from all providers - Add ALL as first entry in CitationFetcherType enum - Implement AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Union results using DatabaseMerger with keyword separator from ImportFormatPreferences, as specified in the task - Return maximum citation count across all providers - Tolerate individual provider failures gracefully - Fix race condition in SearchCitationsRelationsService by marking citationFetcher and citationCountFetcher fields as volatile - Set ALL as the default citation fetcher in preferences - Add unit tests covering failure tolerance, deduplication, and max citation count Closes #15029 * Update CHANGELOG for issue #15029 * Address bot review: fix AllCitationFetcher and improve tests - Build provider list from CitationFetcherType enum (excluding ALL) to avoid duplicate list that can drift when new providers are added - Track anySuccess in fetch() and getCitationCount(); throw FetcherException when all providers fail instead of silently returning empty results - Emit WARN log when some providers fail but others succeed - Rename test variables to intent-revealing names - Fix citation count assertion to use assertEquals(Optional.of(20)) - Add tests for all-providers-fail and partial-failure scenarios * Trigger CI * Reformat AllCitationFetcher * Fix checkstyle: remove blank line at start of constructor block * Reverted back to semantic scholar ui preference * Revert default citation fetcher to SEMANTIC_SCHOLAR in EntryEditorPreferences * Re-trigger CI * Adapt tests to use real constructor with mocks, remove test constructor * fix unchecked excpetion --------- Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Avoid error logs when search queries are incomplete (#15333) * Avoid error logs when search queries are incomplete Log the parsing error at debug level instead of error level. This prevents having unnecessary output when user is still entering input like "title =". * Update changelog for fixing incomplete search logging issue * Update changelog entry for incomplete search logging issue * Refine changelog entry for incomplete search logging issue * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom from 3.24.0 to 3.25.0 (#15217) * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom Bumps [org.openrewrite.recipe:rewrite-recipe-bom](https://github.com/openrewrite/rewrite-recipe-bom) from 3.24.0 to 3.25.0. - [Release notes](https://github.com/openrewrite/rewrite-recipe-bom/releases) - [Commits](openrewrite/rewrite-recipe-bom@v3.24.0...v3.25.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recipe-bom dependency-version: 3.25.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * udpate plugin * update rewrite --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Select better value in MultiMergeEntries dialog component (#15027) (#15255) * Select better value in MultiMergeEntries dialog component (#15027) * Use PlausibilityComparatorFactory in MultiMergeEntriesViewModel to select the more plausible value when merging fields from multiple sources, instead of always keeping the first-seen value. * Add DateFieldPlausibilityComparator to prefer more specific dates. * Add unit tests for DateFieldPlausibilityComparator * implement review comments * Fix trailing whitespace in MultiMergeEntriesViewModelTest * Trigger CI * CI: re-trigger * CI: re-trigger --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> * Fix reset and import for PreviewPreferences (#15306) * Cleanups * Refactor PreviewPreferences for resetting and import * Some null checks and migrations * Fix wrong notnull * Fix import * Avoid addAll crash on immutable List * Add forgotten customPreviewLayout * Fix artifact from code iteration * Refactor for consistency * Fix artifact from code iteration * Enhance dummy fallback layout * Try to fix jbang * Apply IDE suggestions * Fix weird checkstyle behaviour * Add default styles * Fix migration tests * Add tests * Small cleanups --------- Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Fix javadoc markdown artifacts (#15309) * Closes #14897 This incorporates all the pending old Javadoc to Markdown changes required after merging #14891.The following files are changed: 1.AutoCompletionTextInputBinding.java 2.JabRefCliPreferences.java 3.SearchBasedParserFetcher.java 4.StartNewStudyAction.java 1. * 1. * Rsolved mix up of endregion and endRegion.Final one is endregion. 1.File changed-JabRefCliPreferences.java * Rsolved format issue related to line space.Files changed. 1.JabRefCliPreferences.java 2.SearchBasedParserFetcher.java * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Added // endregion to maintain sync with region:AI And // region Push to application preferences and //region to Git 2.Changed region: to region 3.Changed region: Cleanup to previous ToDo: Cleanup 4.changed endRegion to end region 5.Adjusted dangling // endregion by merging Imported Preference tag(new one) with Other Preferences(old one) * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Apply IntelliJ formatting * Update CHANGELOG for JabRef#12967 * Apply case-insensitive comparison only to DOI identifiers * Apply IntelliJ code formatting to DuplicateCheck and DuplicateCheckTest * Add tests for case-insensitive DOI duplicate detection * Fix case-insensitive DOI comparison in duplicate detection * fix formatting --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Faneesh Juneja <willowstration@gmail.com> Co-authored-by: Subhramit Basu <subhramit.bb@live.in> Co-authored-by: Paul <thecoder777.github@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Nishant Dasgupta <nishant.24bcs10451@sst.scaler.com> Co-authored-by: Mike Zhang <97817030+mikezhanghaozhe@users.noreply.github.com> Co-authored-by: JunWang222 <70090336+JunWang222@users.noreply.github.com> Co-authored-by: AbhijitBhowmick <94289124+AbhijitBhowmick@users.noreply.github.com>
* Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com>
* Close entry editor when last library is closed When no library tab is active, the entry editor remained visible. Added close() call in the activeTabProperty listener's else branch to handle the zero-libraries-open case. Fixes JabRef#13125 * Update CHANGELOG for JabRef#13125 * Fix case-insensitive DOI comparison in duplicate detection (JabRef#12967) * Chore(deps): Bump org.gradlex:java-module-dependencies in /build-logic (JabRef#15328) Bumps [org.gradlex:java-module-dependencies](https://github.com/gradlex-org/java-module-dependencies) from 1.12 to 1.12.1. - [Release notes](https://github.com/gradlex-org/java-module-dependencies/releases) - [Changelog](https://github.com/gradlex-org/java-module-dependencies/blob/main/CHANGELOG.md) - [Commits](gradlex-org/java-module-dependencies@v1.12...v1.12.1) --- updated-dependencies: - dependency-name: org.gradlex:java-module-dependencies dependency-version: 1.12.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.openrewrite.rewrite from 7.26.0 to 7.28.1 (JabRef#15326) Bumps org.openrewrite.rewrite from 7.26.0 to 7.28.1. --- updated-dependencies: - dependency-name: org.openrewrite.rewrite dependency-version: 7.28.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.mockito:mockito-core in /versions (JabRef#15330) Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](mockito/mockito@v5.22.0...v5.23.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-version: 5.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.cyclonedx.bom from 3.2.0 to 3.2.1 (JabRef#15327) Bumps org.cyclonedx.bom from 3.2.0 to 3.2.1. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump com.squareup.okio:okio-jvm in /versions (JabRef#15329) Bumps [com.squareup.okio:okio-jvm](https://github.com/square/okio) from 3.16.4 to 3.17.0. - [Changelog](https://github.com/square/okio/blob/master/CHANGELOG.md) - [Commits](square/okio@parent-3.16.4...parent-3.17.0) --- updated-dependencies: - dependency-name: com.squareup.okio:okio-jvm dependency-version: 3.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * New translations jabref_en.properties (Italian) (JabRef#15334) * RIS export SP/EP fields when pages contain Unicode en-dash or em-dash (JabRef#15315) * Extend the split regex to match en-dash and em-dash * Added tests --------- Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Remove object redundancy, miscellaneous refactoring (JabRef#15332) * Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Add drag-and-drop support for Citation Relations tab (JabRef#15181) * Add drag-and-drop support for Citation Relations tab - Implement drag detection in CitationRelationsTab to allow dragging entries - Add drag support to ViewModelListCellFactory - Fix NullPointerException in FrameDndHandler when dropping onto tabs without IDs - Fixes JabRef#15135 * Fix: correctly set drop completion status for entries * Fix: Add Unreleased section and moved changelog entries * Fix CHANGELOG formatting and upstream linter errors; removed empty groups * Fix code consistency for cr * Add explicit type * Consistency in CHANGELOG.md --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Update dependency org.eclipse.jgit:org.eclipse.jgit.pgm to v7.6.0.202603022253-r (JabRef#15335) * Chore(deps): Bump org.cyclonedx.bom from 3.2.1 to 3.2.2 (JabRef#15337) Bumps org.cyclonedx.bom from 3.2.1 to 3.2.2. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.eclipse.jgit:org.eclipse.jgit in /versions (JabRef#15338) Bumps [org.eclipse.jgit:org.eclipse.jgit](https://github.com/eclipse-jgit/jgit) from 7.5.0.202512021534-r to 7.6.0.202603022253-r. - [Commits](eclipse-jgit/jgit@v7.5.0.202512021534-r...v7.6.0.202603022253-r) --- updated-dependencies: - dependency-name: org.eclipse.jgit:org.eclipse.jgit dependency-version: 7.6.0.202603022253-r dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add 'All' citation fetcher that aggregates results from all providers (JabRef#15292) * Add 'All' citation fetcher that aggregates and deduplicates results from all providers - Implements CitationFetcher as AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Deduplicates results using DuplicateCheck with BibDatabaseMode.BIBTEX - Returns maximum citation count across all providers - Tolerates individual provider failures gracefully - Adds ALL entry to CitationFetcherType enum and factory method - Covers behaviour with unit tests (failure tolerance, deduplication, max count) Closes JabRef#15029 * Add 'All' citation fetcher that aggregates results from all providers - Add ALL as first entry in CitationFetcherType enum - Implement AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Union results using DatabaseMerger with keyword separator from ImportFormatPreferences, as specified in the task - Return maximum citation count across all providers - Tolerate individual provider failures gracefully - Fix race condition in SearchCitationsRelationsService by marking citationFetcher and citationCountFetcher fields as volatile - Set ALL as the default citation fetcher in preferences - Add unit tests covering failure tolerance, deduplication, and max citation count Closes JabRef#15029 * Update CHANGELOG for issue JabRef#15029 * Address bot review: fix AllCitationFetcher and improve tests - Build provider list from CitationFetcherType enum (excluding ALL) to avoid duplicate list that can drift when new providers are added - Track anySuccess in fetch() and getCitationCount(); throw FetcherException when all providers fail instead of silently returning empty results - Emit WARN log when some providers fail but others succeed - Rename test variables to intent-revealing names - Fix citation count assertion to use assertEquals(Optional.of(20)) - Add tests for all-providers-fail and partial-failure scenarios * Trigger CI * Reformat AllCitationFetcher * Fix checkstyle: remove blank line at start of constructor block * Reverted back to semantic scholar ui preference * Revert default citation fetcher to SEMANTIC_SCHOLAR in EntryEditorPreferences * Re-trigger CI * Adapt tests to use real constructor with mocks, remove test constructor * fix unchecked excpetion --------- Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Avoid error logs when search queries are incomplete (JabRef#15333) * Avoid error logs when search queries are incomplete Log the parsing error at debug level instead of error level. This prevents having unnecessary output when user is still entering input like "title =". * Update changelog for fixing incomplete search logging issue * Update changelog entry for incomplete search logging issue * Refine changelog entry for incomplete search logging issue * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom from 3.24.0 to 3.25.0 (JabRef#15217) * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom Bumps [org.openrewrite.recipe:rewrite-recipe-bom](https://github.com/openrewrite/rewrite-recipe-bom) from 3.24.0 to 3.25.0. - [Release notes](https://github.com/openrewrite/rewrite-recipe-bom/releases) - [Commits](openrewrite/rewrite-recipe-bom@v3.24.0...v3.25.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recipe-bom dependency-version: 3.25.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * udpate plugin * update rewrite --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Select better value in MultiMergeEntries dialog component (JabRef#15027) (JabRef#15255) * Select better value in MultiMergeEntries dialog component (JabRef#15027) * Use PlausibilityComparatorFactory in MultiMergeEntriesViewModel to select the more plausible value when merging fields from multiple sources, instead of always keeping the first-seen value. * Add DateFieldPlausibilityComparator to prefer more specific dates. * Add unit tests for DateFieldPlausibilityComparator * implement review comments * Fix trailing whitespace in MultiMergeEntriesViewModelTest * Trigger CI * CI: re-trigger * CI: re-trigger --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> * Fix reset and import for PreviewPreferences (JabRef#15306) * Cleanups * Refactor PreviewPreferences for resetting and import * Some null checks and migrations * Fix wrong notnull * Fix import * Avoid addAll crash on immutable List * Add forgotten customPreviewLayout * Fix artifact from code iteration * Refactor for consistency * Fix artifact from code iteration * Enhance dummy fallback layout * Try to fix jbang * Apply IDE suggestions * Fix weird checkstyle behaviour * Add default styles * Fix migration tests * Add tests * Small cleanups --------- Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Fix javadoc markdown artifacts (JabRef#15309) * Closes JabRef#14897 This incorporates all the pending old Javadoc to Markdown changes required after merging JabRef#14891.The following files are changed: 1.AutoCompletionTextInputBinding.java 2.JabRefCliPreferences.java 3.SearchBasedParserFetcher.java 4.StartNewStudyAction.java 1. * 1. * Rsolved mix up of endregion and endRegion.Final one is endregion. 1.File changed-JabRefCliPreferences.java * Rsolved format issue related to line space.Files changed. 1.JabRefCliPreferences.java 2.SearchBasedParserFetcher.java * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Added // endregion to maintain sync with region:AI And // region Push to application preferences and //region to Git 2.Changed region: to region 3.Changed region: Cleanup to previous ToDo: Cleanup 4.changed endRegion to end region 5.Adjusted dangling // endregion by merging Imported Preference tag(new one) with Other Preferences(old one) * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Apply IntelliJ formatting * Update CHANGELOG for JabRef#12967 * Apply case-insensitive comparison only to DOI identifiers * Apply IntelliJ code formatting to DuplicateCheck and DuplicateCheckTest * Add tests for case-insensitive DOI duplicate detection * Fix case-insensitive DOI comparison in duplicate detection * fix formatting --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Faneesh Juneja <willowstration@gmail.com> Co-authored-by: Subhramit Basu <subhramit.bb@live.in> Co-authored-by: Paul <thecoder777.github@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Nishant Dasgupta <nishant.24bcs10451@sst.scaler.com> Co-authored-by: Mike Zhang <97817030+mikezhanghaozhe@users.noreply.github.com> Co-authored-by: JunWang222 <70090336+JunWang222@users.noreply.github.com> Co-authored-by: AbhijitBhowmick <94289124+AbhijitBhowmick@users.noreply.github.com>
* Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com>
* Close entry editor when last library is closed When no library tab is active, the entry editor remained visible. Added close() call in the activeTabProperty listener's else branch to handle the zero-libraries-open case. Fixes JabRef#13125 * Update CHANGELOG for JabRef#13125 * Fix case-insensitive DOI comparison in duplicate detection (JabRef#12967) * Chore(deps): Bump org.gradlex:java-module-dependencies in /build-logic (JabRef#15328) Bumps [org.gradlex:java-module-dependencies](https://github.com/gradlex-org/java-module-dependencies) from 1.12 to 1.12.1. - [Release notes](https://github.com/gradlex-org/java-module-dependencies/releases) - [Changelog](https://github.com/gradlex-org/java-module-dependencies/blob/main/CHANGELOG.md) - [Commits](gradlex-org/java-module-dependencies@v1.12...v1.12.1) --- updated-dependencies: - dependency-name: org.gradlex:java-module-dependencies dependency-version: 1.12.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.openrewrite.rewrite from 7.26.0 to 7.28.1 (JabRef#15326) Bumps org.openrewrite.rewrite from 7.26.0 to 7.28.1. --- updated-dependencies: - dependency-name: org.openrewrite.rewrite dependency-version: 7.28.1 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.mockito:mockito-core in /versions (JabRef#15330) Bumps [org.mockito:mockito-core](https://github.com/mockito/mockito) from 5.22.0 to 5.23.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](mockito/mockito@v5.22.0...v5.23.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-version: 5.23.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.cyclonedx.bom from 3.2.0 to 3.2.1 (JabRef#15327) Bumps org.cyclonedx.bom from 3.2.0 to 3.2.1. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump com.squareup.okio:okio-jvm in /versions (JabRef#15329) Bumps [com.squareup.okio:okio-jvm](https://github.com/square/okio) from 3.16.4 to 3.17.0. - [Changelog](https://github.com/square/okio/blob/master/CHANGELOG.md) - [Commits](square/okio@parent-3.16.4...parent-3.17.0) --- updated-dependencies: - dependency-name: com.squareup.okio:okio-jvm dependency-version: 3.17.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * New translations jabref_en.properties (Italian) (JabRef#15334) * RIS export SP/EP fields when pages contain Unicode en-dash or em-dash (JabRef#15315) * Extend the split regex to match en-dash and em-dash * Added tests --------- Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Remove object redundancy, miscellaneous refactoring (JabRef#15332) * Remove object redundancy, miscellaneous refactoring Signed-off-by: subhramit <subhramit.bb@live.in> * Use abbreviationRepository parameter Signed-off-by: subhramit <subhramit.bb@live.in> * Use less injections for journal abbreviations repository Signed-off-by: subhramit <subhramit.bb@live.in> * Indent Signed-off-by: subhramit <subhramit.bb@live.in> * Revert to codepoint --------- Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> * Add drag-and-drop support for Citation Relations tab (JabRef#15181) * Add drag-and-drop support for Citation Relations tab - Implement drag detection in CitationRelationsTab to allow dragging entries - Add drag support to ViewModelListCellFactory - Fix NullPointerException in FrameDndHandler when dropping onto tabs without IDs - Fixes JabRef#15135 * Fix: correctly set drop completion status for entries * Fix: Add Unreleased section and moved changelog entries * Fix CHANGELOG formatting and upstream linter errors; removed empty groups * Fix code consistency for cr * Add explicit type * Consistency in CHANGELOG.md --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Update dependency org.eclipse.jgit:org.eclipse.jgit.pgm to v7.6.0.202603022253-r (JabRef#15335) * Chore(deps): Bump org.cyclonedx.bom from 3.2.1 to 3.2.2 (JabRef#15337) Bumps org.cyclonedx.bom from 3.2.1 to 3.2.2. --- updated-dependencies: - dependency-name: org.cyclonedx.bom dependency-version: 3.2.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Chore(deps): Bump org.eclipse.jgit:org.eclipse.jgit in /versions (JabRef#15338) Bumps [org.eclipse.jgit:org.eclipse.jgit](https://github.com/eclipse-jgit/jgit) from 7.5.0.202512021534-r to 7.6.0.202603022253-r. - [Commits](eclipse-jgit/jgit@v7.5.0.202512021534-r...v7.6.0.202603022253-r) --- updated-dependencies: - dependency-name: org.eclipse.jgit:org.eclipse.jgit dependency-version: 7.6.0.202603022253-r dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add 'All' citation fetcher that aggregates results from all providers (JabRef#15292) * Add 'All' citation fetcher that aggregates and deduplicates results from all providers - Implements CitationFetcher as AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Deduplicates results using DuplicateCheck with BibDatabaseMode.BIBTEX - Returns maximum citation count across all providers - Tolerates individual provider failures gracefully - Adds ALL entry to CitationFetcherType enum and factory method - Covers behaviour with unit tests (failure tolerance, deduplication, max count) Closes JabRef#15029 * Add 'All' citation fetcher that aggregates results from all providers - Add ALL as first entry in CitationFetcherType enum - Implement AllCitationFetcher aggregating CrossRef, OpenAlex, OpenCitations, and SemanticScholar - Union results using DatabaseMerger with keyword separator from ImportFormatPreferences, as specified in the task - Return maximum citation count across all providers - Tolerate individual provider failures gracefully - Fix race condition in SearchCitationsRelationsService by marking citationFetcher and citationCountFetcher fields as volatile - Set ALL as the default citation fetcher in preferences - Add unit tests covering failure tolerance, deduplication, and max citation count Closes JabRef#15029 * Update CHANGELOG for issue JabRef#15029 * Address bot review: fix AllCitationFetcher and improve tests - Build provider list from CitationFetcherType enum (excluding ALL) to avoid duplicate list that can drift when new providers are added - Track anySuccess in fetch() and getCitationCount(); throw FetcherException when all providers fail instead of silently returning empty results - Emit WARN log when some providers fail but others succeed - Rename test variables to intent-revealing names - Fix citation count assertion to use assertEquals(Optional.of(20)) - Add tests for all-providers-fail and partial-failure scenarios * Trigger CI * Reformat AllCitationFetcher * Fix checkstyle: remove blank line at start of constructor block * Reverted back to semantic scholar ui preference * Revert default citation fetcher to SEMANTIC_SCHOLAR in EntryEditorPreferences * Re-trigger CI * Adapt tests to use real constructor with mocks, remove test constructor * fix unchecked excpetion --------- Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Avoid error logs when search queries are incomplete (JabRef#15333) * Avoid error logs when search queries are incomplete Log the parsing error at debug level instead of error level. This prevents having unnecessary output when user is still entering input like "title =". * Update changelog for fixing incomplete search logging issue * Update changelog entry for incomplete search logging issue * Refine changelog entry for incomplete search logging issue * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom from 3.24.0 to 3.25.0 (JabRef#15217) * Chore(deps): Bump org.openrewrite.recipe:rewrite-recipe-bom Bumps [org.openrewrite.recipe:rewrite-recipe-bom](https://github.com/openrewrite/rewrite-recipe-bom) from 3.24.0 to 3.25.0. - [Release notes](https://github.com/openrewrite/rewrite-recipe-bom/releases) - [Commits](openrewrite/rewrite-recipe-bom@v3.24.0...v3.25.0) --- updated-dependencies: - dependency-name: org.openrewrite.recipe:rewrite-recipe-bom dependency-version: 3.25.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * udpate plugin * update rewrite --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Siedlerchr <siedlerkiller@gmail.com> * Select better value in MultiMergeEntries dialog component (JabRef#15027) (JabRef#15255) * Select better value in MultiMergeEntries dialog component (JabRef#15027) * Use PlausibilityComparatorFactory in MultiMergeEntriesViewModel to select the more plausible value when merging fields from multiple sources, instead of always keeping the first-seen value. * Add DateFieldPlausibilityComparator to prefer more specific dates. * Add unit tests for DateFieldPlausibilityComparator * implement review comments * Fix trailing whitespace in MultiMergeEntriesViewModelTest * Trigger CI * CI: re-trigger * CI: re-trigger --------- Co-authored-by: Christoph <siedlerkiller@gmail.com> * Fix reset and import for PreviewPreferences (JabRef#15306) * Cleanups * Refactor PreviewPreferences for resetting and import * Some null checks and migrations * Fix wrong notnull * Fix import * Avoid addAll crash on immutable List * Add forgotten customPreviewLayout * Fix artifact from code iteration * Refactor for consistency * Fix artifact from code iteration * Enhance dummy fallback layout * Try to fix jbang * Apply IDE suggestions * Fix weird checkstyle behaviour * Add default styles * Fix migration tests * Add tests * Small cleanups --------- Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> * Fix javadoc markdown artifacts (JabRef#15309) * Closes JabRef#14897 This incorporates all the pending old Javadoc to Markdown changes required after merging JabRef#14891.The following files are changed: 1.AutoCompletionTextInputBinding.java 2.JabRefCliPreferences.java 3.SearchBasedParserFetcher.java 4.StartNewStudyAction.java 1. * 1. * Rsolved mix up of endregion and endRegion.Final one is endregion. 1.File changed-JabRefCliPreferences.java * Rsolved format issue related to line space.Files changed. 1.JabRefCliPreferences.java 2.SearchBasedParserFetcher.java * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Added // endregion to maintain sync with region:AI And // region Push to application preferences and //region to Git 2.Changed region: to region 3.Changed region: Cleanup to previous ToDo: Cleanup 4.changed endRegion to end region 5.Adjusted dangling // endregion by merging Imported Preference tag(new one) with Other Preferences(old one) * Files changed. 1.JabRefCliPreferences.java. The following changes are done:- 1.Apply IntelliJ formatting * Update CHANGELOG for JabRef#12967 * Apply case-insensitive comparison only to DOI identifiers * Apply IntelliJ code formatting to DuplicateCheck and DuplicateCheckTest * Add tests for case-insensitive DOI duplicate detection * Fix case-insensitive DOI comparison in duplicate detection * fix formatting --------- Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: subhramit <subhramit.bb@live.in> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Carl Christian Snethlage <50491877+calixtus@users.noreply.github.com> Co-authored-by: Christoph <siedlerkiller@gmail.com> Co-authored-by: Faneesh Juneja <willowstration@gmail.com> Co-authored-by: Subhramit Basu <subhramit.bb@live.in> Co-authored-by: Paul <thecoder777.github@gmail.com> Co-authored-by: Carl Christian Snethlage <calixtus@users.noreply.github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Nishant Dasgupta <nishant.24bcs10451@sst.scaler.com> Co-authored-by: Mike Zhang <97817030+mikezhanghaozhe@users.noreply.github.com> Co-authored-by: JunWang222 <70090336+JunWang222@users.noreply.github.com> Co-authored-by: AbhijitBhowmick <94289124+AbhijitBhowmick@users.noreply.github.com>
LO panel and GroupTree classes had redundant objects that could be derived from the root preferences parameter.
Also some tiny miscellaneous cleanups.
Edit - on more thought, Injector was being used for
JournalAbbreviationRepositoryat too many places. Lets inject inLibraryTaband pass it via parameter to other places (until too much divergence).Checklist
CHANGELOG.mdin a way that can be understood by the average user (if change is visible to the user)