From 41f2d613e72adb2abf6fb553a0a06372258e8d1d Mon Sep 17 00:00:00 2001 From: Abraham Polk Date: Sun, 9 Dec 2018 03:49:51 -0500 Subject: [PATCH] [WIP] Convert Exporter Customization Dialog to javafx (#4394) * Exporter to JavaFX commit 1 * Work on Export Customization Dialog VM * Work on VM * Combine methods in CustomExporterList and move to preferences * work on VM * Add methods to VM * Fix typos * started work on exporter subdialog * Continue work on exporter subdialog * Implement save exporter from add/modify exporter dialog * Add two comments * More work on VMs and prefs * Fix browse method in export customization subdialog * Remove int reference in VM * Create FXML for main exporter customization dialog * Work on View, not complete * Work on using EasyBind * fix some binding issues add stubs * More work on Export Customization Dialog * FXML changes among other things * Work on View for subdialog * Changes to View and logic * Deal with stubs, convert some EVMs to Optionals * Change Optional in subdialog * Add FXML and View * Remove typos and syntax error * Move various code to logic * Fix modify exporter * Fix remove and close bugs * Fix customExports references * Fix get custom prefs * Remove prefs.customExports object from JabRef * Small FXML changes * Remove unused old Swing dialogs * Fix indentation * Make clear comments and Javadoc * Remove CustomExportList * Use new TemplateExporter constructor * Fix spacing and a var name * Add constant vars to prefs * Remove comments * Change log message * Fix tests * Add spacing between imports * Update localization * Replace Optional parameter with null * Replace Optional return with null * Remove AnchorPane * Localize FXML labels * Add subdialog injections * Set browse action in FXML * Add to l10n * Add cancel button to subdialog * Correction to VM try-catch * Inline setTextFields * Remove SortedList TODO * Inline closeDialog * loadExporters to private * forEach to Stream and other fixes * inline init * Fixes to ExporterViewModel * Remove Optional * Add constants to TemplateExporter * Simplify getExtensions without dot * Change try-catch to empty list check * Remove unnecessary method * Fix property getters * Fix property getters again * Fix typo * Update references to customFormats * Add import * Travis CI fixes * Further Travis CI fixes * Remove extra comments * Remove extra newlines --- .../org/jabref/cli/ArgumentProcessor.java | 4 +- src/main/java/org/jabref/gui/JabRefFrame.java | 5 +- .../actions/ManageCustomExportsAction.java | 12 +- .../exporter/CreateModifyExporterDialog.fxml | 52 +++++ .../CreateModifyExporterDialogView.java | 67 ++++++ .../CreateModifyExporterDialogViewModel.java | 107 +++++++++ .../gui/exporter/CustomExportDialog.java | 205 ------------------ .../jabref/gui/exporter/ExportCommand.java | 3 +- .../exporter/ExportCustomizationDialog.fxml | 29 +++ .../exporter/ExportCustomizationDialog.java | 175 --------------- .../ExportCustomizationDialogView.java | 77 +++++++ .../ExportCustomizationDialogViewModel.java | 81 +++++++ .../gui/exporter/ExporterViewModel.java | 47 ++++ .../gui/preferences/PreferencesDialog.java | 4 +- .../logic/exporter/ExporterFactory.java | 5 +- .../logic/exporter/TemplateExporter.java | 44 +++- .../jabref/logic/util/StandardFileType.java | 5 + .../jabref/preferences/CustomExportList.java | 142 ------------ .../jabref/preferences/JabRefPreferences.java | 73 ++++++- .../preferences/PreferencesService.java | 15 ++ src/main/resources/l10n/JabRef_en.properties | 16 +- .../logic/exporter/CsvExportFormatTest.java | 5 +- .../logic/exporter/DocBook5ExporterTest.java | 5 +- .../jabref/logic/exporter/ExporterTest.java | 4 +- .../logic/exporter/HtmlExportFormatTest.java | 5 +- .../logic/exporter/XmpExporterTest.java | 5 +- 26 files changed, 610 insertions(+), 582 deletions(-) create mode 100644 src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml create mode 100644 src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogView.java create mode 100644 src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialogViewModel.java delete mode 100644 src/main/java/org/jabref/gui/exporter/CustomExportDialog.java create mode 100644 src/main/java/org/jabref/gui/exporter/ExportCustomizationDialog.fxml delete mode 100644 src/main/java/org/jabref/gui/exporter/ExportCustomizationDialog.java create mode 100644 src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogView.java create mode 100644 src/main/java/org/jabref/gui/exporter/ExportCustomizationDialogViewModel.java create mode 100644 src/main/java/org/jabref/gui/exporter/ExporterViewModel.java delete mode 100644 src/main/java/org/jabref/preferences/CustomExportList.java diff --git a/src/main/java/org/jabref/cli/ArgumentProcessor.java b/src/main/java/org/jabref/cli/ArgumentProcessor.java index a487e1cb348..f97a582daab 100644 --- a/src/main/java/org/jabref/cli/ArgumentProcessor.java +++ b/src/main/java/org/jabref/cli/ArgumentProcessor.java @@ -8,7 +8,6 @@ import java.util.Collections; import java.util.List; import java.util.Locale; -import java.util.Map; import java.util.Optional; import java.util.prefs.BackingStoreException; @@ -459,8 +458,7 @@ private void importPreferences() { Globals.prefs.importPreferences(cli.getPreferencesImport()); EntryTypes.loadCustomEntryTypes(Globals.prefs.loadCustomEntryTypes(BibDatabaseMode.BIBTEX), Globals.prefs.loadCustomEntryTypes(BibDatabaseMode.BIBLATEX)); - Map customExporters = Globals.prefs.customExports.getCustomExportFormats(Globals.prefs, - Globals.journalAbbreviationLoader); + List customExporters = Globals.prefs.getCustomExportFormats(Globals.journalAbbreviationLoader); LayoutFormatterPreferences layoutPreferences = Globals.prefs .getLayoutFormatterPreferences(Globals.journalAbbreviationLoader); SavePreferences savePreferences = Globals.prefs.loadForExportFromPreferences(); diff --git a/src/main/java/org/jabref/gui/JabRefFrame.java b/src/main/java/org/jabref/gui/JabRefFrame.java index e6ef5d3128f..bc3a4e8a722 100644 --- a/src/main/java/org/jabref/gui/JabRefFrame.java +++ b/src/main/java/org/jabref/gui/JabRefFrame.java @@ -454,9 +454,6 @@ private void tearDownJabRef(List filenames) { } fileHistory.storeHistory(); - prefs.customExports.store(Globals.prefs); - prefs.customImports.store(); - prefs.flush(); // dispose all windows, even if they are not displayed anymore @@ -928,7 +925,7 @@ private MenuBar createMenu() { factory.createMenuItem(StandardActions.SETUP_GENERAL_FIELDS, new SetupGeneralFieldsAction()), factory.createMenuItem(StandardActions.MANAGE_CUSTOM_IMPORTS, new ManageCustomImportsAction(this)), - factory.createMenuItem(StandardActions.MANAGE_CUSTOM_EXPORTS, new ManageCustomExportsAction(this)), + factory.createMenuItem(StandardActions.MANAGE_CUSTOM_EXPORTS, new ManageCustomExportsAction()), factory.createMenuItem(StandardActions.MANAGE_EXTERNAL_FILETYPES, new EditExternalFileTypesAction()), factory.createMenuItem(StandardActions.MANAGE_JOURNALS, new ManageJournalsAction()), factory.createMenuItem(StandardActions.CUSTOMIZE_KEYBINDING, new CustomizeKeyBindingAction()), diff --git a/src/main/java/org/jabref/gui/actions/ManageCustomExportsAction.java b/src/main/java/org/jabref/gui/actions/ManageCustomExportsAction.java index 90567f5f820..60298e05555 100644 --- a/src/main/java/org/jabref/gui/actions/ManageCustomExportsAction.java +++ b/src/main/java/org/jabref/gui/actions/ManageCustomExportsAction.java @@ -1,20 +1,12 @@ package org.jabref.gui.actions; -import org.jabref.gui.JabRefFrame; -import org.jabref.gui.exporter.ExportCustomizationDialog; +import org.jabref.gui.exporter.ExportCustomizationDialogView; public class ManageCustomExportsAction extends SimpleCommand { - private final JabRefFrame jabRefFrame; - - public ManageCustomExportsAction(JabRefFrame jabRefFrame) { - this.jabRefFrame = jabRefFrame; - } - @Override public void execute() { - ExportCustomizationDialog ecd = new ExportCustomizationDialog(jabRefFrame); - ecd.setVisible(true); + new ExportCustomizationDialogView().show(); } } diff --git a/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml b/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml new file mode 100644 index 00000000000..1c63d7e8008 --- /dev/null +++ b/src/main/java/org/jabref/gui/exporter/CreateModifyExporterDialog.fxml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +