瀏覽代碼

Move repeated 'remove vault' dialog to Dialogs class

Jan-Peter Klein 2 月之前
父節點
當前提交
8830e0f5fb

+ 25 - 0
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<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();
+	}
+}

+ 2 - 15
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

+ 2 - 14
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);
 	}
 }

+ 2 - 13
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

+ 2 - 14
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);
 		}
 	}