diff --git a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationWindows.java b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationWindows.java index 408337eef..3f56ab0a8 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/FxApplicationWindows.java +++ b/src/main/java/org/cryptomator/ui/fxapp/FxApplicationWindows.java @@ -24,6 +24,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; +import javax.inject.Provider; import javafx.application.Platform; import javafx.collections.ListChangeListener; import javafx.collections.transformation.FilteredList; @@ -56,7 +57,7 @@ public class FxApplicationWindows { private final VaultOptionsComponent.Factory vaultOptionsWindow; private final ShareVaultComponent.Factory shareVaultWindow; private final FilteredList visibleWindows; - private final CustomDialog.Builder customDialog; + private final Provider customDialogProvider; @Inject public FxApplicationWindows(@PrimaryStage Stage primaryStage, // @@ -71,7 +72,7 @@ public class FxApplicationWindows { VaultOptionsComponent.Factory vaultOptionsWindow, // ShareVaultComponent.Factory shareVaultWindow, // ExecutorService executor, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.primaryStage = primaryStage; this.trayIntegration = trayIntegration; this.mainWindow = mainWindow; @@ -85,7 +86,7 @@ public class FxApplicationWindows { this.vaultOptionsWindow = vaultOptionsWindow; this.shareVaultWindow = shareVaultWindow; this.visibleWindows = Window.getWindows().filtered(Window::isShowing); - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; } public void initialize() { @@ -149,19 +150,19 @@ public class FxApplicationWindows { public void showDokanySupportEndWindow() { CompletableFuture.runAsync(() -> { - customDialog.setOwner(mainWindow.get().window()) // - .setTitleKey("dokanySupportEnd.title") // - .setMessageKey("dokanySupportEnd.message") // - .setDescriptionKey("dokanySupportEnd.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("generic.button.close") // - .setCancelButtonKey("dokanySupportEnd.preferencesBtn") // - .setOkAction(Stage::close) // - .setCancelAction(v -> { - showPreferencesWindow(SelectedPreferencesTab.VOLUME); - v.close(); - }) // - .build().showAndWait(); + customDialogProvider.get().setOwner(mainWindow.get().window()) // + .setTitleKey("dokanySupportEnd.title") // + .setMessageKey("dokanySupportEnd.message") // + .setDescriptionKey("dokanySupportEnd.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("generic.button.close") // + .setCancelButtonKey("dokanySupportEnd.preferencesBtn") // + .setOkAction(Stage::close) // + .setCancelAction(v -> { + showPreferencesWindow(SelectedPreferencesTab.VOLUME); + v.close(); + }) // + .build().showAndWait(); }, Platform::runLater); } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java index 122db7476..313769b64 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java @@ -9,6 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; +import javax.inject.Provider; import javafx.beans.property.ObjectProperty; import javafx.collections.ObservableList; import javafx.fxml.FXML; @@ -28,20 +29,19 @@ public class VaultDetailMissingVaultController implements FxController { private final ObservableList vaults; private final ResourceBundle resourceBundle; private final Stage window; - private final CustomDialog.Builder customDialog; - + private final Provider customDialogProvider; @Inject public VaultDetailMissingVaultController(ObjectProperty vault, // ObservableList vaults, // ResourceBundle resourceBundle, // @MainWindow Stage window, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.vault = vault; this.vaults = vaults; this.resourceBundle = resourceBundle; this.window = window; - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; } @FXML @@ -51,20 +51,20 @@ public class VaultDetailMissingVaultController implements FxController { @FXML void didClickRemoveVault() { - customDialog.setOwner(window) // - .setTitleKey("removeVault.title", vault.get().getDisplayName()) // - .setMessageKey("removeVault.message") // - .setDescriptionKey("removeVault.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("removeVault.confirmBtn") // - .setCancelButtonKey("generic.button.cancel") // - .setOkAction(v -> { - LOG.debug("Removing vault {}.", vault.get().getDisplayName()); - vaults.remove(vault.get()); - v.close(); - }) // - .setCancelAction(Stage::close) // - .build().showAndWait(); + customDialogProvider.get().setOwner(window) // + .setTitleKey("removeVault.title", vault.get().getDisplayName()) // + .setMessageKey("removeVault.message") // + .setDescriptionKey("removeVault.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("removeVault.confirmBtn") // + .setCancelButtonKey("generic.button.cancel") // + .setOkAction(v -> { + LOG.debug("Removing vault {}.", vault.get().getDisplayName()); + vaults.remove(vault.get()); + v.close(); + }) // + .setCancelAction(Stage::close) // + .build().showAndWait(); ; } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java index e45696dfa..4474506da 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java @@ -11,6 +11,7 @@ import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Named; +import javax.inject.Provider; import javafx.beans.property.ObjectProperty; import javafx.collections.ObservableList; import javafx.fxml.FXML; @@ -26,7 +27,7 @@ public class VaultDetailUnknownErrorController implements FxController { private final Stage errorWindow; private final ObservableList vaults; private final Stage mainWindow; - private final CustomDialog.Builder customDialog; + private final Provider customDialogProvider; @Inject public VaultDetailUnknownErrorController(@MainWindow Stage mainWindow, // @@ -34,13 +35,13 @@ public class VaultDetailUnknownErrorController implements FxController { ObservableList vaults, // FxApplicationWindows appWindows, // @Named("errorWindow") Stage errorWindow, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.mainWindow = mainWindow; this.vault = vault; this.vaults = vaults; this.appWindows = appWindows; this.errorWindow = errorWindow; - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; } @FXML @@ -55,19 +56,19 @@ public class VaultDetailUnknownErrorController implements FxController { @FXML void didClickRemoveVault() { - customDialog.setOwner(mainWindow) // - .setTitleKey("removeVault.title", vault.get().getDisplayName()) // - .setMessageKey("removeVault.message") // - .setDescriptionKey("removeVault.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("removeVault.confirmBtn") // - .setCancelButtonKey("generic.button.cancel") // - .setOkAction(v -> { - LOG.debug("Removing vault {}.", vault.get().getDisplayName()); - vaults.remove(vault.get()); - v.close(); - }) // - .setCancelAction(Stage::close) // - .build().showAndWait(); + customDialogProvider.get().setOwner(mainWindow) // + .setTitleKey("removeVault.title", vault.get().getDisplayName()) // + .setMessageKey("removeVault.message") // + .setDescriptionKey("removeVault.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("removeVault.confirmBtn") // + .setCancelButtonKey("generic.button.cancel") // + .setOkAction(v -> { + LOG.debug("Removing vault {}.", vault.get().getDisplayName()); + vaults.remove(vault.get()); + v.close(); + }) // + .setCancelAction(Stage::close) // + .build().showAndWait(); } } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java index 28c5eaf66..170475858 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java @@ -14,6 +14,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; +import javax.inject.Provider; import javafx.beans.property.ObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.value.ObservableValue; @@ -47,18 +48,18 @@ public class VaultListContextMenuController implements FxController { private final ObservableValue selectedVaultUnlockable; private final ObservableValue selectedVaultLockable; private final ObservableList vaults; - private final CustomDialog.Builder customDialog; + private final Provider customDialogProvider; @Inject - VaultListContextMenuController(ObjectProperty selectedVault, + VaultListContextMenuController(ObjectProperty selectedVault, // ObservableList vaults, // @MainWindow Stage mainWindow, // FxApplicationWindows appWindows, // VaultService vaultService, // KeychainManager keychain, // VaultOptionsComponent.Factory vaultOptionsWindow, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.selectedVault = selectedVault; this.vaults = vaults; this.mainWindow = mainWindow; @@ -66,7 +67,7 @@ public class VaultListContextMenuController implements FxController { this.vaultService = vaultService; this.keychain = keychain; this.vaultOptionsWindow = vaultOptionsWindow; - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; this.selectedVaultState = selectedVault.flatMap(Vault::stateProperty).orElse(null); this.selectedVaultPassphraseStored = selectedVault.map(this::isPasswordStored).orElse(false); @@ -82,19 +83,19 @@ public class VaultListContextMenuController implements FxController { @FXML public void didClickRemoveVault() { var vault = Objects.requireNonNull(selectedVault.get()); - customDialog.setOwner(mainWindow) // - .setTitleKey("removeVault.title", vault.getDisplayName()) // - .setMessageKey("removeVault.message") // - .setDescriptionKey("removeVault.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("removeVault.confirmBtn") // - .setCancelButtonKey("generic.button.cancel") // - .setOkAction(v -> { - LOG.debug("Removing vault {}.", vault.getDisplayName()); - vaults.remove(vault); - v.close(); - }) // - .build().showAndWait(); + customDialogProvider.get().setOwner(mainWindow) // + .setTitleKey("removeVault.title", vault.getDisplayName()) // + .setMessageKey("removeVault.message") // + .setDescriptionKey("removeVault.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("removeVault.confirmBtn") // + .setCancelButtonKey("generic.button.cancel") // + .setOkAction(v -> { + LOG.debug("Removing vault {}.", vault.getDisplayName()); + vaults.remove(vault); + v.close(); + }) // + .build().showAndWait(); } @FXML @@ -154,4 +155,6 @@ public class VaultListContextMenuController implements FxController { public boolean isSelectedVaultPassphraseStored() { return selectedVaultPassphraseStored.getValue(); } + + } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index e17893ced..a5e5a4376 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -17,6 +17,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; +import javax.inject.Provider; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; import javafx.beans.property.BooleanProperty; @@ -72,7 +73,7 @@ public class VaultListController implements FxController { private final ResourceBundle resourceBundle; private final FxApplicationWindows appWindows; private final ObservableValue cellSize; - private final CustomDialog.Builder customDialog; + private final Provider customDialogProvider; public ListView vaultList; public StackPane root; @@ -92,7 +93,7 @@ public class VaultListController implements FxController { ResourceBundle resourceBundle, // FxApplicationWindows appWindows, // Settings settings, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.mainWindow = mainWindow; this.vaults = vaults; this.selectedVault = selectedVault; @@ -102,7 +103,7 @@ public class VaultListController implements FxController { this.vaultListManager = vaultListManager; this.resourceBundle = resourceBundle; this.appWindows = appWindows; - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; this.emptyVaultList = Bindings.isEmpty(vaults); @@ -210,20 +211,20 @@ public class VaultListController implements FxController { private void pressedShortcutToRemoveVault() { final var vault = selectedVault.get(); if (vault != null && EnumSet.of(LOCKED, MISSING, ERROR, NEEDS_MIGRATION).contains(vault.getState())) { - customDialog.setOwner(mainWindow) // - .setTitleKey("removeVault.title", vault.getDisplayName()) // - .setMessageKey("removeVault.message") // - .setDescriptionKey("removeVault.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("removeVault.confirmBtn") // - .setCancelButtonKey("generic.button.cancel") // - .setOkAction(v -> { - LOG.debug("Removing vault {}.", vault.getDisplayName()); - vaults.remove(vault); - v.close(); - }) // - .setCancelAction(Stage::close) // - .build().showAndWait(); + customDialogProvider.get().setOwner(mainWindow) // + .setTitleKey("removeVault.title", vault.getDisplayName()) // + .setMessageKey("removeVault.message") // + .setDescriptionKey("removeVault.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("removeVault.confirmBtn") // + .setCancelButtonKey("generic.button.cancel") // + .setOkAction(v -> { + LOG.debug("Removing vault {}.", vault.getDisplayName()); + vaults.remove(vault); + v.close(); + }) // + .setCancelAction(Stage::close) // + .build().showAndWait(); } } diff --git a/src/main/java/org/cryptomator/ui/preferences/SupporterCertificateController.java b/src/main/java/org/cryptomator/ui/preferences/SupporterCertificateController.java index 722816e27..5eb7ad6c5 100644 --- a/src/main/java/org/cryptomator/ui/preferences/SupporterCertificateController.java +++ b/src/main/java/org/cryptomator/ui/preferences/SupporterCertificateController.java @@ -9,6 +9,7 @@ import org.cryptomator.ui.controls.CustomDialog; import org.cryptomator.ui.controls.FontAwesome5Icon; import javax.inject.Inject; +import javax.inject.Provider; import javafx.application.Application; import javafx.beans.value.ObservableValue; import javafx.fxml.FXML; @@ -27,7 +28,7 @@ public class SupporterCertificateController implements FxController { private final Stage window; private final LicenseHolder licenseHolder; private final Settings settings; - private final CustomDialog.Builder customDialog; + private final Provider customDialogProvider; @FXML private TextArea supporterCertificateField; @@ -37,12 +38,12 @@ public class SupporterCertificateController implements FxController { @PreferencesWindow Stage window, // LicenseHolder licenseHolder, // Settings settings, // - CustomDialog.Builder customDialog) { + Provider customDialogProvider) { this.application = application; this.window = window; this.licenseHolder = licenseHolder; this.settings = settings; - this.customDialog = customDialog; + this.customDialogProvider = customDialogProvider; } @FXML @@ -89,19 +90,18 @@ public class SupporterCertificateController implements FxController { @FXML void didClickRemoveCert() { - customDialog.setOwner(window) // - .setTitleKey("removeCert.title") // - .setMessageKey("removeCert.message") // - .setDescriptionKey("removeCert.description") // - .setIcon(FontAwesome5Icon.QUESTION) // - .setOkButtonKey("removeCert.confirmBtn") // - .setCancelButtonKey("generic.button.cancel") - .setOkAction(v -> { - settings.licenseKey.set(null); - v.close(); - }) // - .setCancelAction(Stage::close) // - .build().showAndWait(); + customDialogProvider.get().setOwner(window) // + .setTitleKey("removeCert.title") // + .setMessageKey("removeCert.message") // + .setDescriptionKey("removeCert.description") // + .setIcon(FontAwesome5Icon.QUESTION) // + .setOkButtonKey("removeCert.confirmBtn") // + .setCancelButtonKey("generic.button.cancel").setOkAction(v -> { + settings.licenseKey.set(null); + v.close(); + }) // + .setCancelAction(Stage::close) // + .build().showAndWait(); } public LicenseHolder getLicenseHolder() {