From 12477c07d6f7882a963f5f34ff9e9a4faf60aabb Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Wed, 24 Jul 2019 11:31:49 +0200 Subject: [PATCH] refactoring ChooseExistingVaultControllor to use a scoped ObjectProperty for the vault path --- .../ui/addvaultwizard/AddVaultModule.java | 9 +++++++ .../ChooseExistingVaultController.java | 25 +++++++++++++------ .../resources/fxml/addvault_existing.fxml | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java index 5527f9045..bb36fe96c 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java +++ b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/AddVaultModule.java @@ -4,6 +4,8 @@ import dagger.Binds; import dagger.Module; import dagger.Provides; import dagger.multibindings.IntoMap; +import javafx.beans.property.ObjectProperty; +import javafx.beans.property.SimpleObjectProperty; import javafx.stage.Modality; import javafx.stage.Stage; import javafx.stage.StageStyle; @@ -18,6 +20,7 @@ import org.cryptomator.ui.mainwindow.VaultListController; import javax.inject.Named; import javax.inject.Provider; +import java.nio.file.Path; import java.util.Map; @Module @@ -43,6 +46,12 @@ public abstract class AddVaultModule { return stage; } + @Provides + @AddVaultWizardScoped + static ObjectProperty provideVaultPath(){ + return new SimpleObjectProperty<>(); + } + // ------------------ @Binds diff --git a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java index c4d9c4851..793528f1a 100644 --- a/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java +++ b/main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/ChooseExistingVaultController.java @@ -1,7 +1,7 @@ package org.cryptomator.ui.addvaultwizard; +import javafx.beans.property.ObjectProperty; import javafx.fxml.FXML; -import javafx.scene.control.TextField; import javafx.stage.FileChooser; import javafx.stage.Stage; import org.cryptomator.ui.common.FXMLLoaderFactory; @@ -9,19 +9,20 @@ import org.cryptomator.ui.common.FxController; import javax.inject.Inject; import java.io.File; +import java.nio.file.Path; @AddVaultWizardScoped public class ChooseExistingVaultController implements FxController { - private final FXMLLoaderFactory fxmlLoaders; private final Stage window; - - public TextField textField; + private final FXMLLoaderFactory fxmlLoaders; + private final ObjectProperty vaultPath; @Inject - ChooseExistingVaultController(@AddVaultWizard Stage window, @AddVaultWizard FXMLLoaderFactory fxmlLoaders) { + ChooseExistingVaultController(@AddVaultWizard Stage window, @AddVaultWizard FXMLLoaderFactory fxmlLoaders, ObjectProperty vaultPath) { this.window = window; this.fxmlLoaders = fxmlLoaders; + this.vaultPath = vaultPath; } @FXML @@ -32,18 +33,28 @@ public class ChooseExistingVaultController implements FxController { fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Cryptomator Masterkey", "*.cryptomator")); final File file = fileChooser.showOpenDialog(window); if (file != null) { - textField.setText(file.getAbsolutePath()); + vaultPath.setValue(file.toPath().toAbsolutePath()); } } @FXML public void goBack() { fxmlLoaders.setScene("/fxml/addvault_welcome.fxml", window); - } @FXML public void confirm() { + //TODO window.close(); } + + /* Getter/Setter */ + + public Path getVaultPath() { + return vaultPath.get(); + } + + public ObjectProperty vaultPathProperty() { + return vaultPath; + } } diff --git a/main/ui/src/main/resources/fxml/addvault_existing.fxml b/main/ui/src/main/resources/fxml/addvault_existing.fxml index 02b7271d4..5a83cb834 100644 --- a/main/ui/src/main/resources/fxml/addvault_existing.fxml +++ b/main/ui/src/main/resources/fxml/addvault_existing.fxml @@ -16,7 +16,7 @@