Move repeated 'remove vault' dialog to Dialogs class

This commit is contained in:
Jan-Peter Klein
2025-01-07 15:19:06 +01:00
parent 7a391a2825
commit 8830e0f5fb
5 changed files with 33 additions and 56 deletions

View File

@@ -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<Vault> 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();
}
}

View File

@@ -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

View File

@@ -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);
}
}

View File

@@ -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

View File

@@ -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);
}
}