diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.fxml b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.fxml new file mode 100644 index 00000000000..9dff4dfed08 --- /dev/null +++ b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.fxml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.java b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.java new file mode 100644 index 00000000000..fb3bd29aa03 --- /dev/null +++ b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanel.java @@ -0,0 +1,41 @@ +package org.jabref.gui.commonfxcontrols; + +import javafx.beans.property.BooleanProperty; +import javafx.fxml.FXML; +import javafx.scene.control.RadioButton; +import javafx.scene.layout.VBox; + +import com.airhacks.afterburner.views.ViewLoader; + +public class RemoteServicesConfigPanel extends VBox { + @FXML private RadioButton gorbidEnabled; + @FXML private RadioButton gorbidDisabled; + @FXML private RadioButton gorbidDemanded; + private RemoteServicesConfigPanelViewModel viewModel; + + public RemoteServicesConfigPanel() { + ViewLoader.view(this) + .root(this) + .load(); + } + + @FXML + private void initialize() { + viewModel = new RemoteServicesConfigPanelViewModel(); + gorbidEnabled.selectedProperty().bindBidirectional(viewModel.gorbidEnabledProperty()); + gorbidDisabled.selectedProperty().bindBidirectional(viewModel.gorbidDisabledProperty()); + gorbidDemanded.selectedProperty().bindBidirectional(viewModel.gorbidDemandedProperty()); + } + + public BooleanProperty gorbidEnabledProperty() { + return viewModel.gorbidEnabledProperty(); + } + + public BooleanProperty gorbidDisabledProperty() { + return viewModel.gorbidDisabledProperty(); + } + + public BooleanProperty gorbidDemandedProperty() { + return viewModel.gorbidDemandedProperty(); + } +} diff --git a/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanelViewModel.java b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanelViewModel.java new file mode 100644 index 00000000000..db7e3e51409 --- /dev/null +++ b/src/main/java/org/jabref/gui/commonfxcontrols/RemoteServicesConfigPanelViewModel.java @@ -0,0 +1,22 @@ +package org.jabref.gui.commonfxcontrols; + +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; + +public class RemoteServicesConfigPanelViewModel { + private final BooleanProperty gorbidEnabledProperty = new SimpleBooleanProperty(); + private final BooleanProperty gorbidDisabledProperty = new SimpleBooleanProperty(); + private final BooleanProperty gorbidDemandedProperty = new SimpleBooleanProperty(); + + public BooleanProperty gorbidEnabledProperty() { + return gorbidEnabledProperty; + } + + public BooleanProperty gorbidDisabledProperty() { + return gorbidDisabledProperty; + } + + public BooleanProperty gorbidDemandedProperty() { + return gorbidDemandedProperty; + } +} diff --git a/src/main/java/org/jabref/gui/importer/GrobidOptInDialogHelper.java b/src/main/java/org/jabref/gui/importer/GrobidOptInDialogHelper.java index cf21a38a30c..12045d720a6 100644 --- a/src/main/java/org/jabref/gui/importer/GrobidOptInDialogHelper.java +++ b/src/main/java/org/jabref/gui/importer/GrobidOptInDialogHelper.java @@ -19,6 +19,10 @@ public class GrobidOptInDialogHelper { * @return if the user enabled Grobid, either in the past or after being asked by the dialog. */ public static boolean showAndWaitIfUserIsUndecided(DialogService dialogService, GrobidPreferences preferences) { + if (preferences.isGrobidDemanded()) { + preferences.grobidEnabledProperty().setValue(false); + preferences.grobidOptOutProperty().setValue(false); + } if (preferences.isGrobidEnabled()) { return true; } @@ -29,8 +33,10 @@ public static boolean showAndWaitIfUserIsUndecided(DialogService dialogService, Localization.lang("Remote services"), Localization.lang("Allow sending PDF files and raw citation strings to a JabRef online service (Grobid) to determine Metadata. This produces better results."), Localization.lang("Do not ask again"), - (optOut) -> preferences.grobidOptOutProperty().setValue(optOut)); + (optOut) -> preferences.grobidDemandedProperty().setValue(!optOut)); + preferences.grobidEnabledProperty().setValue(grobidEnabled); + preferences.grobidOptOutProperty().setValue(!grobidEnabled); return grobidEnabled; } } diff --git a/src/main/java/org/jabref/gui/preferences/importexport/ImportExportTab.fxml b/src/main/java/org/jabref/gui/preferences/importexport/ImportExportTab.fxml index c698a797910..42b57d4851a 100644 --- a/src/main/java/org/jabref/gui/preferences/importexport/ImportExportTab.fxml +++ b/src/main/java/org/jabref/gui/preferences/importexport/ImportExportTab.fxml @@ -9,6 +9,8 @@ + + @@ -29,7 +31,8 @@