Skip to content

Commit 286e7f9

Browse files
committed
Merge remote-tracking branch 'upstream/master' into fix-967
# Conflicts: # src/main/java/org/jabref/gui/maintable/MainTable.java # src/main/java/org/jabref/gui/preferences/table/TableTabViewModel.java
2 parents 513c68c + 93ad499 commit 286e7f9

File tree

259 files changed

+4987
-2988
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

259 files changed

+4987
-2988
lines changed

.github/workflows/automerge.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
id: waitforstatuschecks
1212
uses: "WyriHaximus/github-action-wait-for-status@v1.3"
1313
with:
14-
ignoreActions: Automerge Dependabot
14+
ignoreActions: Automerge Dependabot,codecov/project
1515
checkInterval: 13
1616
env:
1717
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,40 @@ Note that this project **does not** adhere to [Semantic Versioning](http://semve
1616
- We added some symbols and keybindings to the context menu in the entry editor. [#7268](https://github.com/JabRef/jabref/pull/7268)
1717
- We added keybindings for setting and clearing the read status. [#7264](https://github.com/JabRef/jabref/issues/7264)
1818
- We added two new fields to track the creation and most recent modification date and time for each entry. [koppor#130](https://github.com/koppor/jabref/issues/130)
19+
- We added a feature that allows the user to copy highlighted text in the preview window. [#6962](https://github.com/JabRef/jabref/issues/6962)
1920

2021
### Changed
2122

2223
- We changed the resize behavior of table columns to have smart fit into the table if there is enough space. [#967](https://github.com/JabRef/jabref/issues/967)
24+
- We improved the "Find unlinked files" dialog to show import results for each file. [#7209](https://github.com/JabRef/jabref/pull/7209)
2325
- The content of the field `timestamp` is migrated to `creationdate`. In case one configured "udpate timestampe", it is migrated to `modificationdate`. [koppor#130](https://github.com/koppor/jabref/issues/130)
2426
- The JabRef specific meta-data content in the main field such as priorities (prio1, prio2, ...) are migrated to their respective fields. They are removed from the keywords. [#6840](https://github.com/jabref/jabref/issues/6840)
2527
- We fixed an issue where groups generated from authors' last names did not include all entries of the authors' [#5833](https://github.com/JabRef/jabref/issues/5833)
2628
- The export to MS Office XML now uses the month name for the field `MonthAcessed` instead of the two digit number [#7354](https://github.com/JabRef/jabref/issues/7354)
29+
- We included some standalone dialogs from the options menu in the main preference dialog and fixed some visual issues in the preferences dialog. [#7384](https://github.com/JabRef/jabref/pull/7384)
2730

2831
### Fixed
2932

3033
- We fixed an issue where the "Normalize page numbers" formatter did not replace en-dashes or em-dashes with a hyphen-minus sign. [#7239](https://github.com/JabRef/jabref/issues/7239)
3134
- We fixed an issue with the style of highlighted check boxes while searching in preferences. [#7226](https://github.com/JabRef/jabref/issues/7226)
3235
- We fixed an issue where the option "Move file to file directory" was disabled in the entry editor for all files [#7194](https://github.com/JabRef/jabref/issues/7194)
3336
- We fixed an issue where application dialogs were opening in the wrong display when using multiple screens [#7273](https://github.com/JabRef/jabref/pull/7273)
37+
- We fixed an issue where the "Find unlinked files" dialog would freeze JabRef on importing. [#7205](https://github.com/JabRef/jabref/issues/7205)
38+
- We fixed an issue where the "Find unlinked files" would stop importing when importing a single file failed. [#7206](https://github.com/JabRef/jabref/issues/7206)
3439
- We fixed an issue where an exception would be displayed for previewing and preferences when a custom theme has been configured but is missing [#7177](https://github.com/JabRef/jabref/issues/7177)
40+
- We fixed an issue where URLs in `file` fields could not be handled on Windows. [#7359](https://github.com/JabRef/jabref/issues/7359)
41+
- We fixed an issue where the regex based file search miss-interpreted specific symbols. [#4342](https://github.com/JabRef/jabref/issues/4342)
3542
- We fixed an issue where the Harvard RTF exporter used the wrong default file extension. [4508](https://github.com/JabRef/jabref/issues/4508)
3643
- We fixed an issue where the Harvard RTF exporter did not use the new authors formatter and therefore did not export "organization" authors correctly. [4508](https://github.com/JabRef/jabref/issues/4508)
3744
- We fixed an issue where the field `urldate` was not exported to the corresponding fields `YearAccessed`, `MonthAccessed`, `DayAccessed` in MS Office XML [#7354](https://github.com/JabRef/jabref/issues/7354)
3845
- We fixed an issue where the password for a shared SQL database was only remembered if it was the same as the username [#6869](https://github.com/JabRef/jabref/issues/6869)
46+
- We fixed an issue where some custom exports did not use the new authors formatter and therefore did not export authors correctly [#7356](https://github.com/JabRef/jabref/issues/7356)
47+
- We fixed an issue where alt+keyboard shortcuts do not work [#6994](https://github.com/JabRef/jabref/issues/6994)
48+
- We fixed an issue where the file path is invisible in dark theme. [#7382](https://github.com/JabRef/jabref/issues/7382)
49+
- We fixed an issue where the secondary sorting is not working for some special fields. [#7015](https://github.com/JabRef/jabref/issues/7015)
50+
- We fixed an issue where changing the font size makes the font size field too small. [#7085](https://github.com/JabRef/jabref/issues/7085)
51+
- We fixed an issue with TexGroups on Linux systems, where the modification of an aux-file did not trigger an auto-update for TexGroups. Furthermore, the detection of file modifications is now more reliable. [#7412](https://github.com/JabRef/jabref/pull/7412)
52+
- We fixed an issue where the Unicode to Latex formatter produced wrong results for characters with a codepoint higher than Character.MAX_VALUE. [#7387](https://github.com/JabRef/jabref/issues/7387)
3953

4054
### Removed
4155

build.gradle

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ plugins {
1414
id 'com.github.ben-manes.versions' version '0.36.0'
1515
id 'org.javamodularity.moduleplugin' version '1.7.0'
1616
id 'org.openjfx.javafxplugin' version '0.0.9'
17-
id 'org.beryx.jlink' version '2.23.2'
17+
id 'org.beryx.jlink' version '2.23.3'
1818
// nicer test outputs during running and completion
1919
// Homepage: https://github.com/radarsh/gradle-test-logger-plugin
2020
id 'com.adarshr.test-logger' version '2.1.1'
@@ -42,6 +42,7 @@ java {
4242

4343
application {
4444
mainClassName = "org.jabref.gui.JabRefLauncher"
45+
mainModule = 'org.jabref'
4546
}
4647

4748
// TODO: Ugly workaround to temporarily ignore build errors to dependencies of latex2unicode
@@ -132,7 +133,10 @@ dependencies {
132133

133134
implementation group: 'org.eclipse.jgit', name: 'org.eclipse.jgit', version: '5.10.0.202012080955-r'
134135

135-
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.1'
136+
implementation group: 'com.fasterxml.jackson.dataformat', name: 'jackson-dataformat-yaml', version: '2.12.0-rc2'
137+
implementation group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.12.0-rc2'
138+
139+
implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '2.7.2'
136140

137141
implementation 'org.postgresql:postgresql:42.2.18'
138142

@@ -190,7 +194,7 @@ dependencies {
190194
implementation 'com.vladsch.flexmark:flexmark-ext-gfm-strikethrough:0.62.2'
191195
implementation 'com.vladsch.flexmark:flexmark-ext-gfm-tasklist:0.62.2'
192196

193-
testImplementation 'io.github.classgraph:classgraph:4.8.98'
197+
testImplementation 'io.github.classgraph:classgraph:4.8.102'
194198
testImplementation 'org.junit.jupiter:junit-jupiter:5.7.0'
195199
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.7.0'
196200
testImplementation 'org.junit.platform:junit-platform-launcher:1.7.0'
@@ -201,13 +205,13 @@ dependencies {
201205
testImplementation 'org.mockito:mockito-core:3.7.7'
202206
testImplementation 'org.xmlunit:xmlunit-core:2.8.2'
203207
testImplementation 'org.xmlunit:xmlunit-matchers:2.8.2'
204-
testRuntime 'com.tngtech.archunit:archunit-junit5-engine:0.15.0'
205-
testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.15.0'
208+
testRuntime 'com.tngtech.archunit:archunit-junit5-engine:0.16.0'
209+
testImplementation 'com.tngtech.archunit:archunit-junit5-api:0.16.0'
206210
testImplementation "org.testfx:testfx-core:4.0.17-alpha-SNAPSHOT"
207211
testImplementation "org.testfx:testfx-junit5:4.0.17-alpha-SNAPSHOT"
208212
testImplementation "org.hamcrest:hamcrest-library:2.2"
209213

210-
checkstyle 'com.puppycrawl.tools:checkstyle:8.39'
214+
checkstyle 'com.puppycrawl.tools:checkstyle:8.40'
211215
xjc group: 'org.glassfish.jaxb', name: 'jaxb-xjc', version: '2.3.3'
212216
}
213217

config/checkstyle/suppressions.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@
66

77
<suppressions>
88
<suppress checks="[a-zA-Z0-9]*" files="[\\/]generated[\\/]" />
9+
<!-- We ignore this file because it's a modification of the original java code https://github.com/openjdk/jfx/blob/jfx15/modules/javafx.controls/src/main/java/javafx/scene/control/skin/TitledPaneSkin.java -->
10+
<suppress checks="[a-zA-Z0-9]*" files="CustomTitledPaneSkin.java" />
911
</suppressions>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Use Jackson to parse study.yml
2+
3+
## Context and Problem Statement
4+
5+
The study definition file is formulated as a YAML document.
6+
To accessed the definition within JabRef this document has to be parsed.
7+
What parser should be used to parse YAML files?
8+
9+
## Considered Options
10+
11+
* [Jackson](https://github.com/FasterXML/jackson-dataformat-yaml)
12+
* [SnakeYAML Engine](https://bitbucket.org/asomov/snakeyaml)
13+
* [yamlbeans](https://github.com/EsotericSoftware/yamlbeans)
14+
* [eo-yaml](https://github.com/decorators-squad/eo-yaml)
15+
* Self-written parser
16+
17+
## Decision Outcome
18+
19+
Chosen option: Jackson, because as it is a dedicated library for parsing YAML. yamlbeans also seem to be viable. They all offer similar functionality
20+
21+
## Pros and Cons of the Options
22+
23+
### Jackson
24+
25+
* Good, because established YAML parser library
26+
* Good, because supports YAML 1.2
27+
* Good, because it can parse LocalDate
28+
29+
### SnakeYAML Engine
30+
31+
* Good, because established YAML parser library
32+
* Good, because supports YAML 1.2
33+
* Bad, because cannot parse YAML into Java DTOs, only into [basic Java structures](https://bitbucket.org/asomov/snakeyaml-engine/src/master/), this then has to be assembled into DTOs
34+
35+
### yamlbeans
36+
37+
* Good, because established YAML parser library
38+
* Good, because [nice getting started page](https://github.com/EsotericSoftware/yamlbeans)
39+
* Bad, because objects need to be annotated in the yaml file to be parsed into Java objects
40+
41+
### eo-yaml
42+
43+
* Good, because established YAML parser library
44+
* Good, because supports YAML 1.2
45+
* Bad, because cannot parse YAML into Java DTOs
46+
47+
### Own parser
48+
49+
* Good, because easily customizable
50+
* Bad, because high effort
51+
* Bad, because has to be tested extensively
52+
53+
## Links
54+
55+
* [Winery's ADR-0009](https://github.com/eclipse/winery/blob/master/docs/adr/0009-manual-tosca-yaml-serialisation.md)
56+
* [Winery's ADR-0010](https://github.com/eclipse/winery/blob/master/docs/adr/0010-tosca-yaml-deserialisation-using-snakeyaml.md)
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Keep study as a DTO
2+
3+
## Context and Problem Statement
4+
5+
The study holds query and library entries that could be replaced respectively with complex query and fetcher instances.
6+
This poses the question: should the study remain a pure DTO object or should it contain direct object instances?
7+
8+
## Considered Options
9+
10+
* Keep study as DTO and use transformers
11+
* Replace entries with instances
12+
13+
## Decision Outcome
14+
15+
Chosen option: "Keep study as DTO and use transformators", because comes out best (see below).
16+
17+
## Pros and Cons of the Options
18+
19+
### Keep study as DTO and use transformators
20+
21+
* Good, because no need for custom serialization
22+
* Good, because deactivated fetchers can be documented (important for traceable Searching (SLRs))
23+
* Bad, because Entries for databases and queries needed
24+
25+
### Replace entries with instances
26+
27+
* Good, because no need for database and query entries
28+
* Bad, because custom de-/serializers for fetchers and complex queries needed
29+
* Bad, because harder to maintain than using "vanilla" jackson de-/serialization
30+
*<!-- numbers of pros and cons can vary -->

docs/getting-into-the-code/code-howtos.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ Many times there is a need to provide an object on many locations simultaneously
6161
6262
### Register to the `EventBus`
6363
64-
Any listening method has to be annotated with `@Subscribe` keyword and must have only one accepting parameter. Furthermore the object which contains such listening method\(s\) has to be registered using the `register(Object)` method provided by `EventBus`. The listening methods can be overloaded by using different parameter types.
64+
Any listening method has to be annotated with `@Subscribe` keyword and must have only one accepting parameter. Furthermore, the object which contains such listening method\(s\) has to be registered using the `register(Object)` method provided by `EventBus`. The listening methods can be overloaded by using different parameter types.
6565
6666
### Posting an object
6767
@@ -190,7 +190,7 @@ If the language is a variant of a language `zh_CN` or `pt_BR` it is necessary to
190190

191191
## Cleanup and Formatters
192192

193-
We try to build a cleanup mechanism based on formatters. The idea is that we can register these actions in arbitrary places, e.g., onSave, onImport, onExport, cleanup, etc. and apply them to different fields. The formatters themself are independent of any logic and therefore easy to test.
193+
We try to build a cleanup mechanism based on formatters. The idea is that we can register these actions in arbitrary places, e.g., onSave, onImport, onExport, cleanup, etc. and apply them to different fields. The formatters themselves are independent of any logic and therefore easy to test.
194194

195195
Example: [NormalizePagesFormatter](https://github.com/JabRef/jabref/blob/master/src/main/java/org/jabref/logic/formatter/bibtexfields/NormalizePagesFormatter.java)
196196

src/main/java/module-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,7 @@
8888
requires lucene.queryparser;
8989
requires lucene.core;
9090
requires org.eclipse.jgit;
91+
requires com.fasterxml.jackson.databind;
92+
requires com.fasterxml.jackson.dataformat.yaml;
93+
requires com.fasterxml.jackson.datatype.jsr310;
9194
}

src/main/java/org/jabref/gui/Base.css

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,10 @@
642642
-fx-background-color: -jr-warn;
643643
}
644644

645+
.file-row-text{
646+
-fx-fill: -jr-search-text;
647+
}
648+
645649
.combo-box-base {
646650
-fx-background-color: -fx-outer-border, -fx-control-inner-background;
647651
-fx-background-insets: 0, 1;
@@ -690,6 +694,31 @@
690694
-fx-padding: 0;
691695
}
692696

697+
.accordion .titled-pane {
698+
-fx-skin: "org.jabref.gui.util.CustomTitledPaneSkin";
699+
-fx-arrow-side: right;
700+
}
701+
702+
.accordion .titled-pane .title {
703+
-fx-background-color: transparent;
704+
-fx-border-color: transparent;
705+
-fx-background-insets: 5 5 5 5;
706+
}
707+
708+
.accordion .titled-pane > *.content {
709+
-fx-background-color: transparent;
710+
-fx-border-color: transparent;
711+
}
712+
713+
/*
714+
* The arrow button has some right padding that's added
715+
* by "modena.css". This simply puts the padding on the
716+
* left since the arrow is positioned on the right.
717+
*/
718+
.titled-pane > .title > .arrow-button {
719+
-fx-padding: 0.0em 0.0em 0.0em 0.583em;
720+
}
721+
693722
.text-input {
694723
-fx-background-color: -fx-outer-border, -fx-control-inner-background;
695724
-fx-background-insets: 0, 1;
@@ -1192,6 +1221,10 @@ TextFlow * {
11921221

11931222
}
11941223

1195-
.mainTable-header{
1224+
.mainTable-header {
11961225
-fx-fill: -fx-mid-text-color;
11971226
}
1227+
1228+
.fontsizeSpinner{
1229+
-fx-pref-width: 5em;
1230+
}

0 commit comments

Comments
 (0)