diff --git a/src/main/java/org/cryptomator/ui/dialogs/Dialogs.java b/src/main/java/org/cryptomator/ui/dialogs/Dialogs.java new file mode 100644 index 000000000..79b3c08d3 --- /dev/null +++ b/src/main/java/org/cryptomator/ui/dialogs/Dialogs.java @@ -0,0 +1,25 @@ +package org.cryptomator.ui.dialogs; + +import org.cryptomator.common.vaults.Vault; +import org.cryptomator.ui.controls.FontAwesome5Icon; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javafx.collections.ObservableList; +import javafx.stage.Stage; + + +public class Dialogs { + + private static final Logger LOG = LoggerFactory.getLogger(Dialogs.class); + + private Dialogs() {} + + public static void showRemoveVaultDialog(SimpleDialog.Builder simpleDialogProvider, Stage mainWindow, Vault vault, ObservableList vaults) { + simpleDialogProvider.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(); + } +} diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java index fc8a71a0c..2a3880ee6 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailMissingVaultController.java @@ -3,6 +3,7 @@ package org.cryptomator.ui.mainwindow; import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.dialogs.Dialogs; import org.cryptomator.ui.dialogs.SimpleDialog; import org.cryptomator.ui.controls.FontAwesome5Icon; import org.slf4j.Logger; @@ -51,21 +52,7 @@ public class VaultDetailMissingVaultController implements FxController { @FXML void didClickRemoveVault() { - simpleDialogProvider.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(); - ; + Dialogs.showRemoveVaultDialog(simpleDialogProvider.get(),window,vault.get(),vaults); } @FXML diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java index 4aae26cc8..c58a1d49d 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java @@ -3,6 +3,7 @@ package org.cryptomator.ui.mainwindow; import org.cryptomator.common.vaults.Vault; import org.cryptomator.common.vaults.VaultListManager; import org.cryptomator.ui.common.FxController; +import org.cryptomator.ui.dialogs.Dialogs; import org.cryptomator.ui.dialogs.SimpleDialog; import org.cryptomator.ui.controls.FontAwesome5Icon; import org.cryptomator.ui.fxapp.FxApplicationWindows; @@ -56,19 +57,6 @@ public class VaultDetailUnknownErrorController implements FxController { @FXML void didClickRemoveVault() { - simpleDialogProvider.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(); + Dialogs.showRemoveVaultDialog(simpleDialogProvider.get(),mainWindow,vault.get(),vaults); } } diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java index fe291036e..d004c70ad 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListContextMenuController.java @@ -6,6 +6,7 @@ import org.cryptomator.common.vaults.VaultState; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.VaultService; import org.cryptomator.ui.controls.FontAwesome5Icon; +import org.cryptomator.ui.dialogs.Dialogs; import org.cryptomator.ui.dialogs.SimpleDialog; import org.cryptomator.ui.fxapp.FxApplicationWindows; import org.cryptomator.ui.vaultoptions.SelectedVaultOptionsTab; @@ -83,19 +84,7 @@ public class VaultListContextMenuController implements FxController { @FXML public void didClickRemoveVault() { var vault = Objects.requireNonNull(selectedVault.get()); - simpleDialogProvider.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(); + Dialogs.showRemoveVaultDialog(simpleDialogProvider.get(),mainWindow,vault,vaults); } @FXML diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index d4a65d94b..e5645b763 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -9,6 +9,7 @@ import org.cryptomator.cryptofs.DirStructure; import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent; import org.cryptomator.ui.common.FxController; import org.cryptomator.ui.common.VaultService; +import org.cryptomator.ui.dialogs.Dialogs; import org.cryptomator.ui.dialogs.SimpleDialog; import org.cryptomator.ui.controls.FontAwesome5Icon; import org.cryptomator.ui.fxapp.FxApplicationWindows; @@ -211,20 +212,7 @@ 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())) { - simpleDialogProvider.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(); + Dialogs.showRemoveVaultDialog(simpleDialogProvider.get(),mainWindow,vault,vaults); } }