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 294 commits into from Jun 3, 2018

[WIP] Main table JavaFX migration #3621

merged 294 commits into from Jun 3, 2018


Copy link

@tobiasdiez tobiasdiez commented Jan 9, 2018

This PR tracks the progress of the migration of the maintable to JavaFX. See also the Maintable in JavaFX project. The current version can be downloaded here.


Please report any bugs that appear or missing features, which are not listed below. Moreover, we appreciate feedback about the general design (what do guys like, what not)

Known bugs:

  • Some input controls (like check boxes) look odd
  • Smaller things outlined here and here
  • Drag & drop to and from the table does not work #3765
  • Ranking is not shown (and thus not editable)
  • Float mode does not work (partly because of unresolved feature request for Java) code to fix
  • Linux / Mac OS: Resizing the columns per drag & drop does not work nicely (#3621 (comment))
  • Linux: Column separator are not shown on hover (#3621 (comment))
  • Performance of search is poor for large databases #1513 (comment)
  • Magnifier icon is not colored correctly - we accept that workaround until we implement something really cool as proposed at #3535 Follow up at koppor#341
  • Mouse wheel for tabs in entry editor works in the wrong way - up/down reversed in comparison to Firefox (by @koppor) Follow up at #4089
  • When in the maintable, Ctrl+F does not focus the search field (by @koppor) Follow up at #3062
  • Import does not work, see #3621 (comment)
  • Trailing thread even after JabRef is closed #3621 (comment)
  • The colors have to harmonized and sometimes the text is hard to read (black on dark background e.g. in the search or for active rows). Reported in #3678 (comment).
  • Deleting of entries does not work, leads to exception
  • When columns are reorded by drag & drop, then the new order is not saved (i.e. lost after closing JabRef)
  • Reordering of tabs using drag'n'drop is not possible any more (by @koppor): code to fix or wait until Java 10
  • Columns cannot be resized even if there is an <-> arrow indicated that it would be possible (by @koppor)
  • The size of the entry editor sometimes resets leading to a very small editor
  • The columns are slightly sized too large if a vertical scrollbar is visible
  • The icons in the right toolbar of the entry editor are sized to small
  • Saving a file leads to an IllegalStateException
  • The searchbar sometimes steals the focus from the maintable.
  • JabRef might no longer start on MacOS #3267 (comment)
  • JabRef might freeze on Linux #3373 (comment)
  • CTRL + TAB does only sometimes work. The toolbar steals the focus. Might be fixed by #3684
  • Changes to entries don't mark database as changed.
  • File annotation tab is not shown and throws exception #3621 (comment)
  • Paste of new entries does not work
  • It is no longer possible to select multiple entries by holding mouse button: code to fix



  • Italic text is now rendered correctly. #3356
  • The entry editor no longer gets corrupted after using the source tab. #3532 #3608 #3616
  • We fixed multiple issues where entries did not show up after import if a search was active. #1513 #3219
  • We fixed an issue where the group tree was not updated correctly after an entry was changed. #3618
  • We fixed an issue where a right-click in the main table selected a wrong entry. #3267
  • We fixed an issue where in rare cases entries where overlayed in the main table. #3281
  • We fixed an issue where selecting a group messed up the focus of the main table / entry editor. #3367
  • We fixed an issue where composite author names were sorted incorrectly. #2828
  • We fixed an issue where the custom file column were sorted incorrectly. #3119
  • We fixed an issues where the entry losses focus when a field is edited and at the same time used for sorting. #3373
  • We fixed an issue where the menu on Mac OS was not displayed in the usual Mac-specific way. #3146
  • We fixed an issue where the groups tree of the last database was still shown even after the database was already closed.
  • We fixed an issue where the "Open file dialog" may disappear behind other windows. #3410
  • We fixed an issue where the default icon of a group was not colored correctly.
  • We reworked the "Edit file" dialog to make it resizeable and improved the workflow for adding and editing files #2970
  • We fixed an issue where the month was not shown in the preview #3239.


  • The special fields like Printed and Read status now show gray icons when the row is hovered.
  • We added a button in the tab header which allows you to close the database with one click. #494
  • Sorting in the main table now takes information from cross-referenced entries into account. #2808
  • If a group has a color specified, then entries matched by this group have a small colored bar in front of them in the main table.
  • Change default icon for groups to a circle because a colored version of the old icon was hard to distinguish from its black counterpart.
  • In the main table, the context menu appears now when you press the "context menu" button on the keyboard. feature request in the forum
  • We added icons to the group side panel to quickly switch between union and intersection group view mode #3269


  • The feature to "mark entries" was removed and merged with the groups functionality. For migration, a group is created for every value of the __markedentry field and the entry is added to this group.
  • The number column was removed.
  • We removed the coloring of cells in the maintable according to whether the field is optional/required.
  • We removed a few commands from the right-click menu that are not needed often and thus don't need to be placed that prominently:
    • Print entry preview: available through entry preview
    • All commands related to marking: marking is not yet reimplemented
    • Set/clear/append/rename fields: available through Edit menu
    • Manage keywords: available through Edit menu
    • Copy linked files to folder: available through File menu

Migrated features:

  • Sorting (Shift + click for multi-column sort)
  • Filtering by search and groups
  • Context menu (with linked files) for the file icon
  • Right-click menu
  • Setting special fields like reading status / priority / ... through the main table

I would like to ask all contributors with write-access to complete the lists above (with links to a comment with further details if necessary) with new bugs or missing features as they are discovered.

@koppor koppor changed the title Main table JavaFX migration [WIP] Main table JavaFX migration Jan 9, 2018
@koppor koppor added this to In progress in Maintable in JavaFX Jan 10, 2018
- We changed one default of [Cleanup entries dialog]( Per default, the PDF are not moved to the default file directory anymore. [#3619](
- We added a new type of group that shows all items referenced in a given LaTeX file (actually the generated AUX file). [#1664](

This comment has been minimized.


koppor Jan 30, 2018

This should be kept

- We changed one default of [Cleanup entries dialog]( Per default, the PDF are not moved to the default file directory anymore. [#3619](
- We added a new type of group that shows all items referenced in a given LaTeX file (actually the generated AUX file). [#1664](
- We added the export of the `translator` field to the according MS-Office XML field. [#1750, comment](

This comment has been minimized.


koppor Jan 30, 2018

The left side is correct. No double "the".

- We changed one default of [Cleanup entries dialog]( Per default, the PDF are not moved to the default file directory anymore. [#3619](
- We added a new type of group that shows all items referenced in a given LaTeX file (actually the generated AUX file). [#1664](
- We added the export of the `translator` field to the according MS-Office XML field. [#1750, comment](
- We completely reworked and redesigned the main table.

This comment has been minimized.


koppor Jan 30, 2018

Remove this line - is already present on line 17

florian-beetz and others added 20 commits May 15, 2018
* Remove usage of transitive dependency on Apache Commons

(cherry picked from commit 6608b2b)

* Use JavaFX-native SVGPath for logo in About dialog
* Switch to org.postgresql

* fix checkstyle
fix driver setup connection

* convert error message dialog to dialog service
* upstream/master:
  update gradle to 4.7 (#4049)
  Add missing translation for "HTML to Unicode" (#4046)
  New Crowdin translations (#4042)
  Use all-text-fields magic also in BibTeX cleanup. (#4039)
  Shortittle bibtexkeypattern now also discards small words (#4030)
# Conflicts:
#	build.gradle
#	src/main/java/org/jabref/
#	src/main/java/org/jabref/
#	src/main/java/org/jabref/gui/
#	src/main/java/org/jabref/gui/
#	src/main/java/org/jabref/gui/
#	src/main/java/org/jabref/gui/actions/
#	src/main/java/org/jabref/gui/actions/
#	src/main/java/org/jabref/gui/collab/
#	src/main/java/org/jabref/gui/entryeditor/EntryEditor.css
#	src/main/java/org/jabref/gui/entryeditor/
#	src/main/java/org/jabref/gui/entryeditor/
#	src/main/java/org/jabref/gui/exporter/
#	src/main/java/org/jabref/gui/exporter/
#	src/main/java/org/jabref/gui/externalfiles/
#	src/main/java/org/jabref/gui/externalfiles/
#	src/main/java/org/jabref/gui/externalfiles/
#	src/main/java/org/jabref/gui/fieldeditors/
#	src/main/java/org/jabref/gui/openoffice/
#	src/main/java/org/jabref/gui/openoffice/
#	src/main/java/org/jabref/gui/preftabs/
#	src/main/java/org/jabref/gui/preftabs/
#	src/main/java/org/jabref/gui/search/
#	src/main/java/org/jabref/logic/formatter/
#	src/main/java/org/jabref/migrations/
#	src/main/java/org/jabref/model/entry/
#	src/main/java/org/jabref/model/entry/
#	src/main/resources/l10n/
#	src/test/java/org/jabref/logic/formatter/
Small fixes
* Add VSCode and Cancel icons. Remove lcd antialiasing for buttons.

* Completely remove explicit font aliasing from icons
Copy link
Member Author

@tobiasdiez tobiasdiez commented Jun 1, 2018

So I now fixed the language tests as well as some other failing tests. This is now good to go as our now master branch. @koppor please be so kind and do the git magic!

@JabRef/developers please go through the issues you reported and check whether they still exists in the most recent version and if yes please create a normal issue for them (or immediately fix them).

@koppor koppor mentioned this pull request Jun 3, 2018
2 of 6 tasks complete
Copy link

@koppor koppor commented Jun 3, 2018

Depends on #4015

(Trying out

Copy link

@koppor koppor commented Jun 3, 2018

Since there are conflicts, I did the following:

  1. git fetch origin --prune - to ensure I have the latest commits
  2. git checkout master - to be on the master branch
  3. git pull - to ensure I have the latest updates at the master branch
  4. git merge origin/maintable-beta - to merge this PR
  5. Open IntelliJ
  6. Wait for indexing being finished
  7. VCS -> Git -> Resolve conflicts
  8. Double click each file
  9. At each file
  10. Apply all non-conflicting changes
  11. Resolve conflicts manually

Notes of important things I did during the merge:

  1. Restored (But id not wire it into the existing code. Maybe, it can be deleted?)
  1. Kept the deletion of gui/importer/
  • I think, the commits 71fcea5, 576588a, and 2f5f2e5 for have to be ported to a certain place somehow. One can do git checkout 2f5f2e5bbe2b42319736bd735791b0b3039096f6, then gitk --all src/main/java/org/jabref/gui/importer/, then git checkout master to a) see what changed in that file and b) to continue working
  1. I had to do some compile fixes:

To create the new branch v4.x, I checkout 9b2fedc (git checkout 9b2fedc238d1ba64875c96cf8), created a new branch v4.x (git checkout -b v4.x) and made it known to our GitHub repo: git push --set-upstream origin v4.x.

@koppor koppor merged commit 1d7a253 into master Jun 3, 2018
3 of 4 checks passed
3 of 4 checks passed
Codacy/PR Quality Review Not up to standards. This pull request quality could be better.
codecov/project 31.36% (+1.02%) compared to 26bb545
continuous-integration/travis-ci/pr The Travis CI build passed
continuous-integration/travis-ci/push The Travis CI build passed
Maintable in JavaFX automation moved this from In progress to Done Jun 3, 2018
koppor added a commit that referenced this pull request Jun 3, 2018
Co-authored-by: Tobias Diez <>
@koppor koppor deleted the maintable-beta branch Jun 29, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Linked issues

Successfully merging this pull request may close these issues.

None yet