Prechádzať zdrojové kódy

expanded functionality: implemented showAddNewVaultWizard and showAddExistingVaultWizard functions

Jan-Peter Klein 1 rok pred
rodič
commit
17778f32b9

+ 18 - 0
src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultWizardComponent.java

@@ -22,6 +22,10 @@ public interface AddVaultWizardComponent {
 
 	@FxmlScene(FxmlFile.ADDVAULT_WELCOME)
 	Lazy<Scene> scene();
+	@FxmlScene(FxmlFile.ADDVAULT_NEW_NAME)
+	Lazy<Scene> sceneNew();
+	@FxmlScene(FxmlFile.ADDVAULT_EXISTING)
+	Lazy<Scene> 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 {
 

+ 20 - 2
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<Vault> vaults, ObjectProperty<Vault> selectedVault, VaultListCellFactory cellFactory, AddVaultWizardComponent.Builder addVaultWizard, RemoveVaultComponent.Builder removeVaultDialogue, VaultListManager vaultListManager, ResourceBundle resourceBundle) {
+	VaultListController(@MainWindow Stage mainWindow, //
+						ObservableList<Vault> vaults, //
+						ObjectProperty<Vault> 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())) {