-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Make JavaFX a first-class citizen #3684
Conversation
…ns in the linked file. Confusion because the gridpane is initially disabled even if there are annotations. After clicking on the file in the Combobox it works fine.
- litle ui changes
* Migrate paramterized RIS tests to JUnit5 * Extract generic importer testing code to new class * Switch to JUnit5 assertions in BibEntryAssert * Remove unused imports * Use static import for Assertion when possible * Extract file collection from importer test classes * Refactor biblioscape importer tests * Refactor BiblioscapeImporterTestTypes to JUnit5 syntax * Refactor CopacImporterTestFiles * Migrate medline importer tests to JUnit5 * Convert BibTeXML importer tests to JUnit5 * Move several non-parametric importer test classes to JUnit5 * Refactor Medline importer tests to JUni5 * Migrate parameterized MODS importer tests to JUnit5 * Migrate MrDLib importer tests to JUnit5 * Migrate MsBibImporter tests to JUnit5 * Migrate OvidImporter tests to JUnit5 * Migrate PdfContentImporter tests to JUnit5 * Migrate PdfXmpImporter tests to JUnit5 * Migrate RepecNepImporter tests to JUnit5 * Migrate RISImporter tests to JUnit5 * Migrate SilverPlatterImporter tests to JUnit5 * Fix imports in SilverPlatterImporterTest * Fix BibTeXMLImporter tests * Fix and clarify BibTeXMLImporterTestTypes * Fix medline tests for malformed files * Remove unused imports * Fix broken test files that can be fixed and remove the ones with larger syntactic problem * Fix MODSImporter tests * Fix test file for MsBibImporter tests * Convert Before to BeforeEach in OvidImporterTests * Check starting line of a file for checking whether it is a PDF * Migrate additional BibTeXML tests to JUnit5 * Refactor and restructure BibTexParser tests * Refactor CopacImporter tests * Refactor BibTeXMLImporter tests * Refactor EndnoteImporter tests * Refactor FreeCiteImporter tests * Refactor InspecImporter tests * Refactor IsiImporter tests * Refactor MedlineImporter tests * Refactor MrDLibImporter tests * Refactor MsBibImporter tests * Refactor OvidImporter tests * Refactor PdfXmpImporter tests * Refactor RepecNepImporter tests * Refactor SilverPlatterImporter tests * Fix a bunch of codacy issues
* Add the Menubar to the Titlebar in MacOS * Remove obsolete Swing menubar stuff
For some reason, I am getting localization warnings when executing this branch, e.g.:
Apart from that, a bigger thing that is still missing imho are most of the toolbar items. We definitely should do one more release, before we merge this. Imho, this might even justify upgrading the version number to JabRef 5.0 |
Refactor BibDatabase Migrations
This fixes #938 - Reading and writing multiple dublinCore entries works: XMPUtilWriter supports mutliple metadata entries in dublinCore and a single entry in the PDDocumentInformation. If you want to test the reading of multiple entries, the PDF file JabRef_multipleMetaEntries.pdf contains three metadata entries in DublinCore for testing locally. - Removed to much code when refactoring the XMPUtil. Non XMP metadata are also relevent, when retrieving org.apache.pdfbox.pdmodel.PDDocumentInformation - Update pdfbox and fontbox from 1.8.13 to 2.0.8 and migritate from jempbox to xmpbox. See pull #1096. - Refactor extraction from DublinCoreSchema - The tests cover the most important use cases, which include reading and writing metadata from pdf files. Both formats, DublinCore and PDMetadata (which are no XMP metadata) are tested. - Separated XMPUtils in a reader and a writer utitlity class. - add meaningful names in DublinCoreExtractor and use StringUtils.isNullOrEmpty - Log exception in XMPUtilShared
@lenhard Which toolbar icons do you miss? I added all which I found reasonable to be placed that prominently (e.g., actions that the user does on a regular basis). Better have too few icons than too many, in my opinion. |
New toolbar: Way too empty for me!! Old toolbar: I marked the things absolutely necessary for me (refs #3636). I don't use the other buttons. I toggle the interfaces via the full menu or via shortcut. copy and paste also not via these menus. Navigation also not via the toolbar. As "good developers" we could have a user voting. Or do we have Azure Analytics in place saying us which buttons are used? Current opinion: Add my loved buttons and install Azure Analytics in parallel for that. Release 4.2 and collect statistics for JabRef 4.3. |
@lenhard Thanks for merging with master, however, this PR is based on the other maintable migration branch. Now all those other changes in master occur as diff for this PR. Does everything work fine if we merge this PR now into the maintable branch? Are the buttons for the shared databases needed? I always thought that changes are synced completely automatically. What extra value does the user gets from a facebook or github icon in the toolbar? How many users regularly open the terminal through JabRef? In general, I'm hugely in favor of a data-based decision. So I would propose to try-out a as minimal as possible version and then slowly add buttons as the users ask for them and/or our data shows that many users click on a certain action in the menu quite often.
Since I was playing with the data, here the distribution of new entries (not really surprising): |
We should discuss this in a devcall and maybe do a user survey? |
You can easily merge it to the other branch. Git automatically recognizes existing commits of other branches.
I am unsure whether this is a chicken/egg thing. What happens if I start writing blog posts advertising our features? I think, most features are unused, because people just do not know about it. Will be a good discussion at the devcall. |
I merged this PR now to have a somewhat workable maintable-beta branch again, that is also head-to-head with the current master (thanks @lenhard !). You all raised good points concerning the toolbar. I think this will be lively discussion in the next dev-call. I marked the related issue #3678 with the corresponding label so that we don't forget it. @Siedlerchr Can you please open a new issue for the undo problem. This appears to be independent of the changes in this PR but not a proper handling of empty cite keys in the undo code. |
With this PR the main frame is converted to use JavaFX. Thus the role is now inverted and instead of embedding JavaFX in a Swing app, we now embedded the old Swing controls in a real JavaFX app. Hopefully, this leads to less problems.
The current state is very very basic and a lot of stuff is missing (side bar, menu, lila header instead of toolbar). The main reason for putting it out right now is to test if pushing the migration further fixes the issues encountered with Linux and MacOS.
@Siedlerchr @LinusDietz could you please try out this version and see if JabRef starts and shows a maintable (the latter only works if JabRef normally opens a bib file for you, since there is currently no GUI to open a new file).