Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Main table JavaFX migration #3621

Merged
merged 294 commits into from
Jun 3, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
294 commits
Select commit Hold shift + click to select a range
8534235
Revert sorting fix
tobiasdiez Jan 29, 2018
4e5f46b
Now fix sorting for real
tobiasdiez Jan 30, 2018
1d1b3e7
Fix changelog
tobiasdiez Jan 30, 2018
63f962d
Fix filtering
tobiasdiez Jan 30, 2018
904a287
Fix exception in external file type dialog
tobiasdiez Jan 30, 2018
298e7fe
Entry changes should mark panel as changed
lenhard Jan 30, 2018
88da81b
Merge branch 'maintable-beta' of github.com:JabRef/jabref into mainta…
lenhard Jan 30, 2018
7a711bb
Merge remote-tracking branch 'origin/master' into maintable-beta
koppor Jan 30, 2018
be9be8f
Merge remote-tracking branch 'origin/master' into maintable-beta
koppor Jan 31, 2018
dbc4711
Merge remote-tracking branch 'JabRef/maintable-beta' into javafxGloba…
tobiasdiez Feb 1, 2018
2833335
Fix build
tobiasdiez Feb 2, 2018
6d7d4e5
Fix import orders
tobiasdiez Feb 2, 2018
94027da
Show main table
tobiasdiez Feb 2, 2018
86d0393
Reimplement copy and paste of entries (#3681)
tobiasdiez Feb 3, 2018
8130a8f
Fix annotation tab (#3682)
tobiasdiez Feb 3, 2018
08f4cf4
fix checkstyle and implement singleton using enum
Siedlerchr Feb 3, 2018
07e6b89
another round at checkstyle
Siedlerchr Feb 3, 2018
7fb3311
checkstyle
Siedlerchr Feb 3, 2018
2fc5a34
Add test menu
tobiasdiez Feb 5, 2018
4ea3f35
Visually improve display of maintable (#3689)
tobiasdiez Feb 6, 2018
40a9df3
Fix select entries my holding mouse (#3683)
tobiasdiez Feb 6, 2018
ddc5325
Start reworking file menu
tobiasdiez Feb 7, 2018
a319de7
Finish file menu
tobiasdiez Feb 8, 2018
3e670d0
Migrate edit menu
tobiasdiez Feb 8, 2018
29565c5
Show correct title and image
tobiasdiez Feb 8, 2018
0141abb
Make escape close entry editor when no field is selected
Siedlerchr Feb 9, 2018
1cf45c2
Convert options menu to javafx
Siedlerchr Feb 9, 2018
6033faa
Convert side pane to JavaFX
tobiasdiez Feb 9, 2018
8701680
Merge branch 'javafxGlobalEverything' of https://github.com/JabRef/ja…
tobiasdiez Feb 9, 2018
284eeab
Fix import
tobiasdiez Feb 9, 2018
7e2c537
convert XMP Action and SubDatabase action
Siedlerchr Feb 10, 2018
407a1e4
Add Tools menu
Siedlerchr Feb 10, 2018
d3cd8aa
convert help menu
Siedlerchr Feb 10, 2018
952b39c
Migrate view menu
tobiasdiez Feb 11, 2018
249dc8a
reduce new FXDialogService
tobiasdiez Feb 11, 2018
804eae0
Replace a few swing dialogs by JavaFX
tobiasdiez Feb 11, 2018
e7ca282
Change color of main menu to ugly pink
tobiasdiez Feb 11, 2018
3c8a07b
Add help action to menu
tobiasdiez Feb 12, 2018
8165e0e
Convert global search to JavFX
tobiasdiez Feb 13, 2018
c75b5d2
Migrate toolbar
tobiasdiez Feb 16, 2018
a46d3f7
convert some more menus
Siedlerchr Feb 16, 2018
fd6dec8
Migrate rest of quality menu
tobiasdiez Feb 17, 2018
71b291d
remove synchronize file links
Siedlerchr Feb 17, 2018
5fe961e
Add push to external application menu entry
tobiasdiez Feb 17, 2018
9cfcd5c
Fix a few NPEs
tobiasdiez Feb 17, 2018
262a283
Remove unused code
tobiasdiez Feb 17, 2018
555c9a6
Merge remote-tracking branch 'upstream/javafxGlobalEverything' into j…
Siedlerchr Feb 19, 2018
244c74f
Fix copying of linked files dialog
Siedlerchr Feb 19, 2018
a32f579
Add the Menubar to the Titlebar in MacOS (#3751)
LinusDietz Feb 20, 2018
6152e8d
Merge with master
lenhard Feb 20, 2018
963ec92
Fix side pane resize issues
tobiasdiez Feb 20, 2018
2fb0f44
Remove strange code style profile
tobiasdiez Feb 20, 2018
840bdf5
Fix build
tobiasdiez Feb 20, 2018
8cbe6e7
Merge branch 'maintable-beta' of https://github.com/JabRef/jabref int…
tobiasdiez Feb 20, 2018
eeb603b
Merge pull request #3684 from JabRef/javafxGlobalEverything
tobiasdiez Feb 20, 2018
55090ae
Fix checkstyle issues
lenhard Feb 21, 2018
58cfd7f
Merge branch 'master' into maintable-beta
lenhard Feb 21, 2018
0fbb779
Pressing ESC now clears search field
mohamean Feb 21, 2018
ad8b60f
First available entry selected after pressing ESC as well
mohamean Feb 21, 2018
bc334da
remove customjfx panel for linux
Siedlerchr Feb 22, 2018
9aab1b6
fix title tab updating issue
Siedlerchr Feb 22, 2018
14921fd
Run a few more things on JavaFX thread to fix saving issues
tobiasdiez Feb 22, 2018
1606b95
Fix size of icons in entry editor toolbar
tobiasdiez Feb 22, 2018
f8d9ea6
Properly resize main table even when a vertical scrollbar is shown
tobiasdiez Feb 22, 2018
4998925
Fix height problems for entry editor and preview panel
tobiasdiez Feb 22, 2018
1f6546a
Show column border on hover to easy resize
tobiasdiez Feb 22, 2018
3eee795
revert formatting changes
Siedlerchr Feb 22, 2018
7af1f13
Fix NPE occuring with a not initalized watcher in DefaultFileUpdateMo…
Siedlerchr Feb 22, 2018
2999474
Reenable drag'n'drop support for tabs / libraries (#3688)
tobiasdiez Feb 26, 2018
01bb49e
Show empty group pane if no database is open (#3785)
tobiasdiez Feb 27, 2018
fc36140
Allow side pane to be completely hidden (#3784)
tobiasdiez Feb 27, 2018
d8914a8
Save order of columns across sessions (#3783)
tobiasdiez Feb 27, 2018
3710be8
Track telemetry of each action (#3789)
tobiasdiez Mar 1, 2018
f4f527d
Set main stage for file dialogs (#3790)
tobiasdiez Mar 2, 2018
403986f
Fix delete action and convert confirmation dialog to JavaFX (#3778)
tobiasdiez Mar 2, 2018
84ab697
Extend toolbar with more icons and add tool tips (#3767)
lenhard Mar 2, 2018
2c2e864
Change open last edited dialgo to javafx (#3800)
Siedlerchr Mar 2, 2018
e3ea6ae
Remove setting of tooltip manually
Siedlerchr Mar 3, 2018
fd98056
Enable travis build for maintable-beta (#3804)
Siedlerchr Mar 4, 2018
9c6bd69
Add group coloring in maintable as replacement for marked entries (#3…
tobiasdiez Mar 5, 2018
f6df529
Remove unused import
LinusDietz Mar 5, 2018
21355ab
Dialogstojavafx (#3801)
Siedlerchr Mar 5, 2018
2eee861
Fix Codacy Unused Params, Fields (#3753)
LinusDietz Mar 5, 2018
f711c1e
Allow search field to be smaller
tobiasdiez Mar 5, 2018
175719e
Fix some non FX Thread issues
Siedlerchr Mar 7, 2018
0f3320e
embed cleanup dialog in javafx
Siedlerchr Mar 7, 2018
dabd175
Update test order -> Execute checkstyle first (#3807)
Siedlerchr Mar 5, 2018
0c833ea
checkstyle argh!
Siedlerchr Mar 7, 2018
313b258
Set resizable for custom dialog with dialog pane
Siedlerchr Mar 7, 2018
8395333
fix cut, copy & paste action from toolbar
Siedlerchr Mar 7, 2018
d7ff5a7
run find fulltext dialog in fx thread
Siedlerchr Mar 7, 2018
242170f
Replace swing export dialog in ExportToClipboardAction with fx choice…
Siedlerchr Mar 7, 2018
dcbfcbc
Convert swing error dialog in save db action to custom fx dialog
Siedlerchr Mar 7, 2018
e7171d6
replace open office install selection dialog with choice dialog
Siedlerchr Mar 7, 2018
bead86a
adjust line wrapping on column
Siedlerchr Mar 7, 2018
13f59f0
Fixes #3796: Pretend that we have every translation for every key (#3…
tobiasdiez Mar 9, 2018
44b41da
Merge branch 'maintable-beta' into clear-searchfield-on-esc
tobiasdiez Mar 9, 2018
b028c9c
Remove color customization for maintable from preferences (#3808)
tobiasdiez Mar 11, 2018
d31f2d8
Remove customjfx (#3779)
Siedlerchr Mar 11, 2018
d448548
Show dialog when copy files did not found file (#3826)
Siedlerchr Mar 11, 2018
cd4d683
Apply copy linked files dialog fix from master
Siedlerchr Mar 11, 2018
87b13ae
Disable FTP Download on CI
Siedlerchr Mar 11, 2018
c449762
update javafxsvg to 1.3.0
Siedlerchr Mar 11, 2018
11dfd2b
update applicationsinsights
Siedlerchr Mar 11, 2018
d0964ba
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Mar 12, 2018
dca1ee7
Merge changes for renamed actions
tobiasdiez Mar 12, 2018
94f8224
fix inital save error
Siedlerchr Mar 13, 2018
affca25
fix some not on fx thread dialogs in preferences
Siedlerchr Mar 14, 2018
4994d7f
Update Eclipse style to intellij style (#3827)
Siedlerchr Mar 14, 2018
d99d2d8
Merge pull request #3760 from mohamean/clear-searchfield-on-esc
koppor Mar 16, 2018
d60b04d
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
LinusDietz Mar 16, 2018
ba40f57
fix keybinding of entry editor
Siedlerchr Mar 16, 2018
2c2a302
add missing localization
Siedlerchr Mar 16, 2018
41c66f4
Watch main css file for change and reapply automatically (#3847)
tobiasdiez Mar 18, 2018
ad8bfd4
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr Mar 18, 2018
a93ed9b
fix build, remove layout prefs, pass journal abbrev loader and prefs …
Siedlerchr Mar 18, 2018
4b76989
Get rid of journal abbrev loader in linkedFiles (#3862)
Siedlerchr Mar 18, 2018
06d6736
fix failing tests in maintable beta (#3863)
Siedlerchr Mar 19, 2018
3c4a3ef
Make it easier to create FXML dialogs (#3880)
tobiasdiez Mar 23, 2018
57d889f
Don't use null as parameter in DialogService
tobiasdiez Mar 23, 2018
b7d215c
Fix import thread problem
tobiasdiez Mar 23, 2018
4f93e1a
Improve tooltip tests
tobiasdiez Mar 23, 2018
8a8c4e4
Merge pull request #3884 from JabRef/readdStatusNotification
tobiasdiez Mar 23, 2018
b3072f3
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Mar 23, 2018
495f79f
Load EntryEditor using new ViewLoader
tobiasdiez Mar 24, 2018
fca70e2
Move icon stuff to new package gui.icon
tobiasdiez Mar 24, 2018
a7639aa
Use JabRef icons in FXML
tobiasdiez Mar 24, 2018
f512128
Load all field editors using ViewLoader
tobiasdiez Mar 24, 2018
dfaa0d8
Merge pull request #3886 from JabRef/stateButton
Siedlerchr Mar 24, 2018
0bf39f5
Reenable closing of entry preview by pressing Esc (#3883)
tobiasdiez Mar 25, 2018
972cdc8
javafx replacement for file dialog (#3005)
Siedlerchr Mar 26, 2018
6a37f2f
Consistent FX color scheme for JabRef (#3839)
Mar 26, 2018
1de3f6c
Enable loading of other theme files
tobiasdiez Mar 26, 2018
588ca02
Fix missing icons and wrong package for custom icons
halirutan Mar 27, 2018
afde094
Clean unused imports
halirutan Mar 27, 2018
eef429f
Add dark theme
tobiasdiez Mar 27, 2018
d39f8e8
Improvements in light theme
tobiasdiez Mar 27, 2018
1a31701
Merge branch 'maintable-beta' into darkTheme
halirutan Mar 28, 2018
ef8c2b0
Improve small details
halirutan Mar 28, 2018
0fcfff9
- Switch back to circles as default group icon
tobiasdiez Mar 28, 2018
2bd87a7
Remove all @author comments and empty method/class comments
koppor Mar 31, 2018
0b2db53
Exchange Ignore by Disabled (#3912)
koppor Mar 31, 2018
78b21cf
Merge remote-tracking branch 'origin/maintable-beta' into remove-auth…
koppor Apr 1, 2018
8f979ac
Fix checkstyle
koppor Apr 1, 2018
3ccb902
Merge pull request #3911 from JabRef/remove-author-annotations
koppor Apr 1, 2018
6ddc83b
Fix colors and button effects
halirutan Apr 1, 2018
0eb62f9
fix closing preferences on save
Siedlerchr Apr 2, 2018
c47b9a5
fix checkstyle
Siedlerchr Apr 2, 2018
8d61241
Formatter refactoring (#3919)
tobiasdiez Apr 4, 2018
d9bccf8
- Menu same color as toolbar
tobiasdiez Apr 7, 2018
439530a
Merge pull request #3891 from JabRef/darkTheme
tobiasdiez Apr 7, 2018
abef16b
Merge
tobiasdiez Apr 7, 2018
2987648
Fix style of annotation tab and linked files list
tobiasdiez Apr 7, 2018
bb7e755
Fix loading of document viewer
tobiasdiez Apr 7, 2018
2f2abbc
Fix css warning in error console
tobiasdiez Apr 7, 2018
5c57353
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Apr 7, 2018
3e7343c
fix checkstyle
Siedlerchr Apr 7, 2018
10a50b8
delete duplicate class
Siedlerchr Apr 7, 2018
bde5c14
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Apr 11, 2018
557783a
Clean changelog
tobiasdiez Apr 11, 2018
520d45e
Replace a few Swing dialogs by JavaFX ones
tobiasdiez Apr 11, 2018
ef993bb
Remove unnecessary JavaFX threading
tobiasdiez Apr 11, 2018
eba064b
Cleanup BasePanel
tobiasdiez Apr 11, 2018
8dff922
Delete unused and empty class
tobiasdiez Apr 11, 2018
fa9f59d
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr Apr 13, 2018
b26c68e
merge master, fix searchbar
Siedlerchr Apr 13, 2018
cf8e6e6
add search performance tweak from master
Siedlerchr Apr 14, 2018
30aa702
Remove unused methods
tobiasdiez Apr 15, 2018
3658479
Bring back special fields in menu
tobiasdiez Apr 15, 2018
862a2cf
Fix close confirmation
tobiasdiez Apr 15, 2018
c790103
fix FX thread error on save database dlg
Siedlerchr Apr 15, 2018
1092571
Fixed Url column (#3965)
florian-beetz Apr 23, 2018
a6b0996
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr Apr 25, 2018
cd49127
make jabref compile again
Siedlerchr Apr 25, 2018
706e0fe
fix space
Siedlerchr Apr 25, 2018
5574f40
Merge branch 'master' into maintable-beta
tobiasdiez Apr 26, 2018
cb6f541
Merge branch 'master' into maintable-beta
tobiasdiez Apr 26, 2018
de4b416
Delete ExportAction.java
tobiasdiez Apr 26, 2018
a231827
fix compile erro
Siedlerchr Apr 26, 2018
45a8ae9
fix icon
Siedlerchr Apr 26, 2018
5bdc4ad
change icon to correct name
Siedlerchr Apr 26, 2018
06514bd
Improvements around external file types (#3887)
tobiasdiez Apr 28, 2018
b5d0f4d
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Apr 28, 2018
dbafabf
Merge branch 'master' into maintable-beta
tobiasdiez Apr 29, 2018
f4d180c
Fix build
tobiasdiez Apr 30, 2018
a01fb78
Fix concurrent modification exception when adding entries to groups
tobiasdiez Apr 30, 2018
1a7f968
Improve code layout
tobiasdiez May 1, 2018
9437ed8
Activate context menu on key press (#4004)
tobiasdiez May 1, 2018
147ffca
Fix IEEE preview does not display month (#3983)
DevSiroukane May 2, 2018
c019582
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr May 4, 2018
2808d5d
remove look and feel
Siedlerchr May 4, 2018
fdd3bf8
fix import
Siedlerchr May 4, 2018
477771d
set look and feel to windows, aqua or nimbus for swing in case
Siedlerchr May 4, 2018
8a8e09a
Add button-icon for union/intersection in the groups side panel (#3954)
Siedlerchr May 6, 2018
35b0683
Reimplement tooltips for file and identifier columns (#4011)
florian-beetz May 7, 2018
71332c4
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr May 10, 2018
841305c
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez May 11, 2018
1c2a5fb
Fix formatting
tobiasdiez May 11, 2018
fe5a305
Fix formatting
tobiasdiez May 11, 2018
4f56b28
Fix case of constants
tobiasdiez May 11, 2018
15c0a78
Do not cache bibtex key pattern dialog
tobiasdiez May 11, 2018
5b80bcd
No global preferences in cleanup action
tobiasdiez May 11, 2018
88cbb40
No global clipboard manager in copy action
tobiasdiez May 11, 2018
8f92723
Fix naming
tobiasdiez May 11, 2018
768398c
Fix formatting
tobiasdiez May 11, 2018
8baece5
Do not cache external file type edit action
tobiasdiez May 11, 2018
cb41cf8
Do not cache database properties dialog
tobiasdiez May 11, 2018
c80c5a9
Remove unused class
tobiasdiez May 11, 2018
4c9dbc3
Fix formatting
tobiasdiez May 11, 2018
b11d9cc
Remove unused class
tobiasdiez May 11, 2018
c4286b8
Fix formatting
tobiasdiez May 11, 2018
e352f11
Remove commented-out code
tobiasdiez May 11, 2018
4606e6e
Preferences as parameter to export command
tobiasdiez May 11, 2018
a469764
call System.exit after Platform.exit, as the latter one did not shutd…
Siedlerchr May 12, 2018
0700051
fix checkstyle
Siedlerchr May 12, 2018
f95229c
Fix spelling
tobiasdiez May 13, 2018
bbff88d
Remove unused argument
tobiasdiez May 13, 2018
2909b7e
Fix formatting
tobiasdiez May 13, 2018
7562172
Fix formatting
tobiasdiez May 13, 2018
c56ebaf
Convert static methods to instance members (and fix spelling)
tobiasdiez May 13, 2018
f610b6d
Remove commented-out code
tobiasdiez May 13, 2018
d6bc06f
Show tooltip for icon-based columns
tobiasdiez May 13, 2018
7b0cedf
Remove unused class
tobiasdiez May 13, 2018
591992c
Extract dialog service to field
tobiasdiez May 13, 2018
c62070b
Extract dialog service to field
tobiasdiez May 13, 2018
287a21b
Move color related method
tobiasdiez May 13, 2018
e5fa39a
Inline comment
tobiasdiez May 13, 2018
468cce9
Fix initial freeze when downloading files
tobiasdiez May 13, 2018
3a0474d
Remove reflection hack to set WM_CLASS (#4034)
florian-beetz May 15, 2018
c560e00
Use JavaFX-native SVGPath for logo in About dialog (#4035)
florian-beetz May 15, 2018
845b384
Fix freeze when importing (#4037)
tobiasdiez May 18, 2018
4f1299e
Switch to org.postgresql (#4031)
tobiasdiez May 20, 2018
8cbe028
Merge remote-tracking branch 'upstream/master' into maintable-beta
Siedlerchr May 22, 2018
390c387
Merge branch 'master' into maintable-beta
stefan-kolb May 25, 2018
a685e9d
Formatter tests
stefan-kolb May 25, 2018
ab5ee89
Merge branch 'master' into maintable-beta
stefan-kolb May 25, 2018
7dfb404
Remove unused code
tobiasdiez May 26, 2018
8b2c662
Fix NPE
tobiasdiez May 26, 2018
7f00459
Merge pull request #4060 from JabRef/smallFixes
tobiasdiez May 26, 2018
9af2780
Change date parsing warning to debug statement (#4059)
tobiasdiez May 26, 2018
bb0f728
Fixes #4023: Correctly recognize running remote server
tobiasdiez May 31, 2018
20920d9
Additional "Cancel" and "VSCode" icon (#4069)
Jun 1, 2018
73eaaad
Merge branch 'maintable-beta' of https://github.com/JabRef/jabref int…
tobiasdiez Jun 1, 2018
7299f89
Fix localization
tobiasdiez Jun 1, 2018
4e85103
Remove special menu localization files
tobiasdiez Jun 1, 2018
a872333
Fix import order
tobiasdiez Jun 1, 2018
aad5dd1
Fix architecture test
tobiasdiez Jun 1, 2018
51d2292
Fix XMP exporter tests
tobiasdiez Jun 1, 2018
9de8c42
Merge branch 'master' of https://github.com/JabRef/jabref into mainta…
tobiasdiez Jun 1, 2018
1d7a253
Fix build
tobiasdiez Jun 1, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ after_failure:
branches:
only:
- master
- maintable-beta

# cache gradle dependencies
# https://docs.travis-ci.com/user/languages/java#Caching
Expand Down
10 changes: 6 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ configurations {
}

dependencies {
// Include all jar-files in the 'lib' folder as dependencies
compile fileTree(dir: 'lib', includes: ['*.jar'])

compile 'com.jgoodies:jgoodies-common:1.8.1'
Expand Down Expand Up @@ -112,20 +113,21 @@ dependencies {
// VersionEye states that 6.0.5 is the most recent version, but http://dev.mysql.com/downloads/connector/j/ shows that as "Development Release"
compile 'mysql:mysql-connector-java:5.1.46'

compile 'com.impossibl.pgjdbc-ng:pgjdbc-ng:0.7.1'
compile 'org.postgresql:postgresql:42.2.2'

compile 'net.java.dev.glazedlists:glazedlists_java15:1.9.1'

compile 'com.google.guava:guava:25.1-jre'

// JavaFX stuff
compile 'com.airhacks:afterburner.fx:1.7.0'
compile 'de.codecentric.centerdevice:javafxsvg:1.3.0'
compile 'de.jensd:fontawesomefx-materialdesignfont:1.7.22-4'
compile 'de.saxsys:mvvmfx-validation:1.7.0'
compile 'de.saxsys:mvvmfx:1.7.0'
compile 'org.fxmisc.easybind:easybind:1.0.3'
compile 'org.fxmisc.flowless:flowless:0.6.1'
compile 'org.fxmisc.richtext:richtextfx:0.9.0'
compile 'com.sibvisions.external.jvxfx:dndtabpane:0.1'
compile 'javax.inject:javax.inject:1'

// Cannot be updated to 9.*.* until Jabref works with Java 9
compile 'org.controlsfx:controlsfx:8.40.15-SNAPSHOT'
Expand Down Expand Up @@ -165,7 +167,7 @@ dependencies {
testCompile 'org.xmlunit:xmlunit-matchers:2.6.0'
testCompile 'com.tngtech.archunit:archunit-junit:0.8.0'
testCompile "org.testfx:testfx-core:4.0.+"
testCompile "org.testfx:testfx-junit:4.0.+"
testCompile "org.testfx:testfx-junit5:4.0.+"

checkstyle 'com.puppycrawl.tools:checkstyle:8.10.1'
}
Expand Down
328 changes: 328 additions & 0 deletions config/Eclipse Code Style.epf

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions config/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,16 @@ Style-checks are done for each pull request and installing this cody style confi
10. Press "OK"

* Please let `.editorconfig` override the settings of IntelliJ


# Eclipse:

The Eclipse code formatter style is stored in the `eclipse.gradle` file and gets imported automatically.
In case the formatter style needs to be adapted, configure it and export in in eclipse.

1. Right click on the eclipse project "JabRef"
2. Select "Export > General > Preferences"
3. Select "Java Code Style preferences"
4. Choose output file
5. Compare the formatter settings in the epf file with the ones in the eclipse.gradle file (`org.eclipse.jdt.core.formatter.`)
6. Replace the Eclipse Code Style.epf with the exported epf file
314 changes: 0 additions & 314 deletions config/eclipseJabRef.xml

This file was deleted.

535 changes: 275 additions & 260 deletions eclipse.gradle

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions external-libraries.txt
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,11 @@ Project: Application Insights SDK for Java
URL: https://github.com/Microsoft/ApplicationInsights-Java
License: MIT

Id: com.sibvisions.external.jvxfx:DnDTabPane
Project: Drag'n'Drop TabPane
URL: https://github.com/sibvisions/javafx.DndTabPane
License: EPL-1.0

Id: commons-cli:commons-cli
Project: Apache Commons CLI
URL: http://commons.apache.org/cli/
Expand Down
5 changes: 5 additions & 0 deletions javafx/scene/control/annotations.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<root>
<item name='javafx.scene.control.Dialog dialogPane'>
<annotation name='javafx.fxml.FXML'/>
</item>
</root>
Binary file added lib/afterburner.fx.jar
Binary file not shown.
Binary file removed lib/customjfx-1.0.0.jar
Binary file not shown.
13 changes: 12 additions & 1 deletion src/main/java/org/jabref/Globals.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@
import java.util.Optional;
import java.util.UUID;

import org.jabref.gui.ClipBoardManager;
import org.jabref.gui.GlobalFocusListener;
import org.jabref.gui.StateManager;
import org.jabref.gui.keyboard.KeyBindingRepository;
import org.jabref.gui.util.DefaultFileUpdateMonitor;
import org.jabref.gui.util.DefaultTaskExecutor;
import org.jabref.gui.util.TaskExecutor;
import org.jabref.gui.util.ThemeLoader;
import org.jabref.logic.exporter.ExporterFactory;
import org.jabref.logic.importer.ImportFormatReader;
import org.jabref.logic.journals.JournalAbbreviationLoader;
Expand Down Expand Up @@ -49,13 +51,17 @@ public class Globals {
/**
* Manager for the state of the GUI.
*/

public static ClipBoardManager clipboardManager = new ClipBoardManager();

public static StateManager stateManager = new StateManager();
public static ExporterFactory exportFactory;
// Key binding preferences
private static KeyBindingRepository keyBindingRepository;
// Background tasks
private static GlobalFocusListener focusListener;
private static DefaultFileUpdateMonitor fileUpdateMonitor;
private static ThemeLoader themeLoader;
private static TelemetryClient telemetryClient;

private Globals() {
Expand All @@ -69,14 +75,15 @@ public static synchronized KeyBindingRepository getKeyPrefs() {
return keyBindingRepository;
}


// Background tasks
public static void startBackgroundTasks() {
Globals.focusListener = new GlobalFocusListener();

Globals.fileUpdateMonitor = new DefaultFileUpdateMonitor();
JabRefExecutorService.INSTANCE.executeInterruptableTask(Globals.fileUpdateMonitor, "FileUpdateMonitor");

themeLoader = new ThemeLoader(fileUpdateMonitor);

if (Globals.prefs.shouldCollectTelemetry() && !GraphicsEnvironment.isHeadless()) {
startTelemetryClient();
}
Expand Down Expand Up @@ -126,4 +133,8 @@ public static void stopBackgroundTasks() {
public static Optional<TelemetryClient> getTelemetryClient() {
return Optional.ofNullable(telemetryClient);
}

public static ThemeLoader getThemeLoader() {
return themeLoader;
}
}
2 changes: 1 addition & 1 deletion src/main/java/org/jabref/JabRefExecutorService.java
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public void shutdownEverything() {
this.lowPriorityExecutorService.shutdownNow();
// kill the remote thread
stopRemoteThread();
// timer doesn't need to be canceled as it is run in daemon mode, which ensures that it is stopped if the application is shut down
timer.cancel();
}

private class NamedRunnable implements Runnable {
Expand Down
128 changes: 59 additions & 69 deletions src/main/java/org/jabref/JabRefGUI.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jabref;

import java.awt.Font;
import java.awt.Frame;
import java.io.File;
import java.sql.SQLException;
import java.util.ArrayList;
Expand All @@ -10,16 +9,21 @@
import java.util.Iterator;
import java.util.List;

import javax.swing.JOptionPane;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.plaf.FontUIResource;

import javafx.scene.Scene;
import javafx.stage.Stage;

import org.jabref.gui.BasePanel;
import org.jabref.gui.DialogService;
import org.jabref.gui.FXDialogService;
import org.jabref.gui.GUIGlobals;
import org.jabref.gui.JabRefFrame;
import org.jabref.gui.dialogs.BackupUIManager;
import org.jabref.gui.icon.IconTheme;
import org.jabref.gui.importer.ParserResultWarningDialog;
import org.jabref.gui.importer.actions.OpenDatabaseAction;
import org.jabref.gui.shared.SharedDatabaseUIManager;
Expand All @@ -41,30 +45,34 @@
public class JabRefGUI {

private static final String NIMBUS_LOOK_AND_FEEL = "javax.swing.plaf.nimbus.NimbusLookAndFeel";
private static final String WINDOWS_LOOK_AND_FEEL = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
private static final String OSX_AQUA_LOOk_AND_FEEL = "apple.laf.AquaLookAndFeel";

private static final Logger LOGGER = LoggerFactory.getLogger(JabRefGUI.class);
private static final String GTK_LF_CLASSNAME = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";

private static JabRefFrame mainFrame;

private final List<ParserResult> bibDatabases;
private final boolean isBlank;
private final List<ParserResult> failed = new ArrayList<>();
private final List<ParserResult> toOpenTab = new ArrayList<>();
private final DialogService dialogService;

private final String focusedFile;

public JabRefGUI(List<ParserResult> argsDatabases, boolean isBlank) {
public JabRefGUI(Stage mainStage, List<ParserResult> argsDatabases, boolean isBlank) {
this.bibDatabases = argsDatabases;
this.isBlank = isBlank;
this.dialogService = new FXDialogService(mainStage);

// passed file (we take the first one) should be focused
focusedFile = argsDatabases.stream()
.findFirst()
.flatMap(ParserResult::getFile)
.map(File::getAbsolutePath)
.orElse(Globals.prefs.get(JabRefPreferences.LAST_FOCUSED));
.findFirst()
.flatMap(ParserResult::getFile)
.map(File::getAbsolutePath)
.orElse(Globals.prefs.get(JabRefPreferences.LAST_FOCUSED));

openWindow();
openWindow(mainStage);
JabRefGUI.checkForNewVersion(false);
}

Expand All @@ -74,13 +82,7 @@ public static void checkForNewVersion(boolean manualExecution) {
new VersionWorker(JabRefGUI.getMainFrame(), manualExecution, currentVersion, toBeIgnored).execute();
}

private void openWindow() {

// This property is set to make the Mac OSX Java VM move the menu bar to the top of the screen
if (OS.OS_X) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
}

private void openWindow(Stage mainStage) {
// Set antialiasing on everywhere. This only works in JRE >= 1.5.
// Or... it doesn't work, period.
// TODO test and maybe remove this! I found this commented out with no additional info ( payload@lavabit.com )
Expand All @@ -101,7 +103,7 @@ private void openWindow() {
GUIGlobals.init();

LOGGER.debug("Initializing frame");
JabRefGUI.mainFrame = new JabRefFrame();
JabRefGUI.mainFrame = new JabRefFrame(mainStage);

// Add all bibDatabases databases to the frame:
boolean first = false;
Expand All @@ -120,14 +122,15 @@ private void openWindow() {
try {
new SharedDatabaseUIManager(mainFrame).openSharedDatabaseFromParserResult(pr);
} catch (SQLException | DatabaseNotSupportedException | InvalidDBMSConnectionPropertiesException |
NotASharedDatabaseException e) {
NotASharedDatabaseException e) {
pr.getDatabaseContext().clearDatabaseFile(); // do not open the original file
pr.getDatabase().clearSharedDatabaseID();

LOGGER.error("Connection error", e);
JOptionPane.showMessageDialog(mainFrame,
e.getMessage() + "\n\n" + Localization.lang("A local copy will be opened."),
Localization.lang("Connection error"), JOptionPane.WARNING_MESSAGE);
dialogService.showErrorDialogAndWait(
Localization.lang("Connection error"),
Localization.lang("A local copy will be opened."),
e);
}
toOpenTab.add(pr);
} else if (pr.toOpenTab()) {
Expand All @@ -151,18 +154,29 @@ private void openWindow() {
// state. This needs to be set after the window has been made visible, so we
// do it here:
if (Globals.prefs.getBoolean(JabRefPreferences.WINDOW_MAXIMISED)) {
JabRefGUI.getMainFrame().setExtendedState(Frame.MAXIMIZED_BOTH);
mainStage.setMaximized(true);
}

JabRefGUI.getMainFrame().setVisible(true);
Scene scene = new Scene(JabRefGUI.mainFrame, 800, 800);
Globals.getThemeLoader().installBaseCss(scene);
mainStage.setTitle(JabRefFrame.FRAME_TITLE);
mainStage.getIcons().addAll(IconTheme.getLogoSetFX());
mainStage.setScene(scene);
mainStage.show();

mainStage.setOnCloseRequest(event -> {
boolean reallyQuit = mainFrame.quit();
if (!reallyQuit) {
event.consume();
}
});

for (ParserResult pr : failed) {
String message = "<html>" + Localization.lang("Error opening file '%0'.", pr.getFile().get().getName())
+ "<p>"
+ pr.getErrorMessage() + "</html>";
String message = Localization.lang("Error opening file '%0'.", pr.getFile().get().getName()) + "\n"
+ pr.getErrorMessage();

dialogService.showErrorDialogAndWait(Localization.lang("Error opening file"), message);

JOptionPane.showMessageDialog(JabRefGUI.getMainFrame(), message, Localization.lang("Error opening file"),
JOptionPane.ERROR_MESSAGE);
}

// Display warnings, if any
Expand All @@ -187,10 +201,6 @@ private void openWindow() {
}

LOGGER.debug("Finished adding panels");

if (!bibDatabases.isEmpty()) {
JabRefGUI.getMainFrame().getCurrentBasePanel().getMainTable().requestFocus();
}
}

private void openLastEditedDatabases() {
Expand All @@ -208,11 +218,11 @@ private void openLastEditedDatabases() {
}

if (BackupManager.checkForBackupFile(dbFile.toPath())) {
BackupUIManager.showRestoreBackupDialog(mainFrame, dbFile.toPath());
BackupUIManager.showRestoreBackupDialog(dialogService, dbFile.toPath());
}

ParserResult parsedDatabase = OpenDatabase.loadDatabase(fileName,
Globals.prefs.getImportFormatPreferences(), Globals.getFileUpdateMonitor());
Globals.prefs.getImportFormatPreferences(), Globals.getFileUpdateMonitor());

if (parsedDatabase.isEmpty()) {
LOGGER.error(Localization.lang("Error opening file") + " '" + dbFile.getPath() + "'");
Expand All @@ -233,50 +243,30 @@ private boolean isLoaded(File fileToOpen) {

private void setLookAndFeel() {
try {
String lookFeel;
String systemLookFeel = UIManager.getSystemLookAndFeelClassName();

if (Globals.prefs.getBoolean(JabRefPreferences.USE_DEFAULT_LOOK_AND_FEEL)) {
// FIXME: Problems with GTK L&F on Linux and Mac. Needs reevaluation for Java9
if (GTK_LF_CLASSNAME.equals(systemLookFeel)) {
lookFeel = NIMBUS_LOOK_AND_FEEL;
LOGGER.warn("There seems to be problems with GTK Look&Feel. Using Nimbus L&F instead. Change to another L&F with caution.");
} else {
lookFeel = systemLookFeel;
}
} else {
lookFeel = Globals.prefs.get(JabRefPreferences.WIN_LOOK_AND_FEEL);
}

//Prevent metal l&f
if (UIManager.getCrossPlatformLookAndFeelClassName().equals(lookFeel)) {
UIManager.setLookAndFeel(NIMBUS_LOOK_AND_FEEL);
if (OS.WINDOWS) {
UIManager.setLookAndFeel(WINDOWS_LOOK_AND_FEEL);
}
if (OS.OS_X) {
UIManager.setLookAndFeel(OSX_AQUA_LOOk_AND_FEEL);
} else {
try {
UIManager.setLookAndFeel(lookFeel);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
UnsupportedLookAndFeelException e) {
// specified look and feel does not exist on the classpath, so use system l&f
UIManager.setLookAndFeel(systemLookFeel);
// also set system l&f as default
Globals.prefs.put(JabRefPreferences.WIN_LOOK_AND_FEEL, systemLookFeel);
// notify the user
JOptionPane.showMessageDialog(JabRefGUI.getMainFrame(),
Localization
.lang("Unable to find the requested look and feel and thus the default one is used."),
Localization.lang("Warning"), JOptionPane.WARNING_MESSAGE);
LOGGER.warn("Unable to find requested look and feel", e);
}
UIManager.setLookAndFeel(NIMBUS_LOOK_AND_FEEL);
}

// On Linux, Java FX fonts look blurry per default. This can be improved by using a non-default rendering
// setting. See https://github.com/woky/javafx-hates-linux
if (Globals.prefs.getBoolean(JabRefPreferences.FX_FONT_RENDERING_TWEAK)) {
System.setProperty("prism.text", "t2k");
System.setProperty("prism.lcdtext", "true");
}
} catch (Exception e) {
LOGGER.warn("Look and feel could not be set", e);
} catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException | IllegalAccessException e) {
try {
LOGGER.warn("Setting Look and Feel to Nimbus", e);

UIManager.setLookAndFeel(NIMBUS_LOOK_AND_FEEL);
} catch (Exception ex) {
LOGGER.warn("Look and feel could not be set", e);
}

}

// In JabRef v2.8, we did it only on NON-Mac. Now, we try on all platforms
Expand Down
Loading