From 17778f32b97aea02fa05ad394fd38ef328a53a9f Mon Sep 17 00:00:00 2001 From: Jan-Peter Klein Date: Tue, 15 Aug 2023 14:30:55 +0200 Subject: [PATCH] expanded functionality: implemented showAddNewVaultWizard and showAddExistingVaultWizard functions --- .../AddVaultWizardComponent.java | 18 +++++++++++++++ .../ui/mainwindow/VaultListController.java | 22 +++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java index 1253d8347..9f4c1e007 100644 --- a/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java +++ b/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java @@ -22,6 +22,10 @@ public interface AddVaultWizardComponent { @FxmlScene(FxmlFile.ADDVAULT_WELCOME) Lazy scene(); + @FxmlScene(FxmlFile.ADDVAULT_NEW_NAME) + Lazy sceneNew(); + @FxmlScene(FxmlFile.ADDVAULT_EXISTING) + Lazy sceneExisting(); default void showAddVaultWizard() { Stage stage = window(); @@ -30,6 +34,20 @@ public interface AddVaultWizardComponent { stage.show(); } + default void showAddNewVaultWizard() { + Stage stage = window(); + stage.setScene(sceneNew().get()); + stage.sizeToScene(); + stage.show(); + } + + default void showAddExistingVaultWizard() { + Stage stage = window(); + stage.setScene(sceneExisting().get()); + stage.sizeToScene(); + stage.show(); + } + @Subcomponent.Builder interface Builder { diff --git a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java index df43edb65..35a807e57 100644 --- a/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java +++ b/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java @@ -72,7 +72,14 @@ public class VaultListController implements FxController { public Button addVaultBtn; @Inject - VaultListController(@MainWindow Stage mainWindow, ObservableList vaults, ObjectProperty selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVaultDialogue, VaultListManager vaultListManager, ResourceBundle resourceBundle) { + VaultListController(@MainWindow Stage mainWindow, // + ObservableList vaults, // + ObjectProperty selectedVault, // + VaultListCellFactory cellFactory, // + AddVaultWizardComponent.Builder addVaultWizard, // + RemoveVaultComponent.Builder removeVaultDialogue, // + VaultListManager vaultListManager, // + ResourceBundle resourceBundle) { this.mainWindow = mainWindow; this.vaults = vaults; this.selectedVault = selectedVault; @@ -141,10 +148,11 @@ public class VaultListController implements FxController { FontAwesome5IconView addIcon = new FontAwesome5IconView(); addIcon.setGlyph(FontAwesome5Icon.PLUS); MenuItem item1 = new MenuItem(resourceBundle.getString("addvaultwizard.welcome.newButton"), addIcon); + item1.setOnAction(event -> didClickAddNewVault()); FontAwesome5IconView openIcon = new FontAwesome5IconView(); openIcon.setGlyph(FontAwesome5Icon.FOLDER_OPEN); MenuItem item2 = new MenuItem(resourceBundle.getString("addvaultwizard.welcome.existingButton"), openIcon); - item2.setOnAction(event -> didClickAddVault()); + item2.setOnAction(event -> didClickAddExistingVault()); contextMenu.getItems().addAll(item1, item2); addVaultBtn.setContextMenu(contextMenu); } @@ -170,11 +178,21 @@ public class VaultListController implements FxController { VaultListManager.redetermineVaultState(newValue); } + @FXML + public void didClickAddNewVault() { + addVaultWizard.build().showAddNewVaultWizard(); + } + @FXML public void didClickAddVault() { addVaultWizard.build().showAddVaultWizard(); } + @FXML + public void didClickAddExistingVault() { + addVaultWizard.build().showAddExistingVaultWizard(); + } + private void pressedShortcutToRemoveVault() { final var vault = selectedVault.get(); if (vault != null && EnumSet.of(LOCKED, MISSING, ERROR, NEEDS_MIGRATION).contains(vault.getState())) {