mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-20 19:51:27 +00:00
#929, implemented functionality to add existing vault
This commit is contained in:
@@ -6,6 +6,7 @@ import dagger.Provides;
|
||||
import dagger.multibindings.IntoMap;
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.beans.property.SimpleObjectProperty;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.stage.Modality;
|
||||
import javafx.stage.Stage;
|
||||
import javafx.stage.StageStyle;
|
||||
@@ -13,6 +14,7 @@ import org.cryptomator.ui.common.FXMLLoaderFactory;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
import org.cryptomator.ui.common.FxControllerKey;
|
||||
import org.cryptomator.ui.mainwindow.MainWindow;
|
||||
import org.cryptomator.ui.model.Vault;
|
||||
|
||||
import javax.inject.Provider;
|
||||
import java.nio.file.Path;
|
||||
@@ -47,6 +49,12 @@ public abstract class AddVaultModule {
|
||||
return new SimpleObjectProperty<>();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@AddVaultWizardScoped
|
||||
static ObservableList<Vault> provideVaults(@AddVaultWizard ObservableList<Vault> vaults) {
|
||||
return vaults;
|
||||
}
|
||||
|
||||
// ------------------
|
||||
|
||||
@Binds
|
||||
|
||||
@@ -5,9 +5,12 @@
|
||||
*******************************************************************************/
|
||||
package org.cryptomator.ui.addvaultwizard;
|
||||
|
||||
import dagger.BindsInstance;
|
||||
import dagger.Subcomponent;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.stage.Stage;
|
||||
import org.cryptomator.ui.common.FXMLLoaderFactory;
|
||||
import org.cryptomator.ui.model.Vault;
|
||||
|
||||
@AddVaultWizardScoped
|
||||
@Subcomponent(modules = {AddVaultModule.class})
|
||||
@@ -29,6 +32,9 @@ public interface AddVaultWizardComponent {
|
||||
@Subcomponent.Builder
|
||||
interface Builder {
|
||||
|
||||
@BindsInstance
|
||||
Builder vaults(@AddVaultWizard ObservableList<Vault> vaults);
|
||||
|
||||
AddVaultWizardComponent build();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package org.cryptomator.ui.addvaultwizard;
|
||||
|
||||
import javafx.beans.property.ObjectProperty;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.fxml.FXML;
|
||||
import javafx.stage.FileChooser;
|
||||
import javafx.stage.Stage;
|
||||
import org.cryptomator.common.settings.VaultSettings;
|
||||
import org.cryptomator.ui.common.FXMLLoaderFactory;
|
||||
import org.cryptomator.ui.common.FxController;
|
||||
import org.cryptomator.ui.model.Vault;
|
||||
import org.cryptomator.ui.model.VaultFactory;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.File;
|
||||
@@ -17,23 +21,27 @@ public class ChooseExistingVaultController implements FxController {
|
||||
private final Stage window;
|
||||
private final FXMLLoaderFactory fxmlLoaders;
|
||||
private final ObjectProperty<Path> vaultPath;
|
||||
private final ObservableList<Vault> vaults;
|
||||
private final VaultFactory vaultFactory;
|
||||
|
||||
@Inject
|
||||
ChooseExistingVaultController(@AddVaultWizard Stage window, @AddVaultWizard FXMLLoaderFactory fxmlLoaders, ObjectProperty<Path> vaultPath) {
|
||||
ChooseExistingVaultController(@AddVaultWizard Stage window, @AddVaultWizard FXMLLoaderFactory fxmlLoaders, ObjectProperty<Path> vaultPath, @AddVaultWizard ObservableList<Vault> vaults, VaultFactory vaultFactory) {
|
||||
this.window = window;
|
||||
this.fxmlLoaders = fxmlLoaders;
|
||||
this.vaultPath = vaultPath;
|
||||
this.vaults = vaults;
|
||||
this.vaultFactory = vaultFactory;
|
||||
}
|
||||
|
||||
@FXML
|
||||
public void chooseFile() {
|
||||
FileChooser fileChooser = new FileChooser();
|
||||
//TODO: Title is part of the localization. => inject resource bundle and get correct title
|
||||
fileChooser.setTitle("Open Masterkey File");
|
||||
fileChooser.setTitle("TODO Open Masterkey File");
|
||||
fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Cryptomator Masterkey", "*.cryptomator"));
|
||||
final File file = fileChooser.showOpenDialog(window);
|
||||
if (file != null) {
|
||||
vaultPath.setValue(file.toPath().toAbsolutePath());
|
||||
vaultPath.setValue(file.toPath().toAbsolutePath().getParent());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +52,10 @@ public class ChooseExistingVaultController implements FxController {
|
||||
|
||||
@FXML
|
||||
public void confirm() {
|
||||
//TODO
|
||||
//TODO: error handling & cannot unlock added vault
|
||||
VaultSettings vaultSettings = VaultSettings.withRandomId();
|
||||
vaultSettings.path().setValue(vaultPath.get());
|
||||
vaults.add(vaultFactory.get(vaultSettings));
|
||||
window.close();
|
||||
}
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class VaultListController implements FxController {
|
||||
}
|
||||
|
||||
public void didClickAddVault() {
|
||||
addVaultWizard.build().showAddVaultWizard();
|
||||
addVaultWizard.vaults(vaults).build().showAddVaultWizard();
|
||||
}
|
||||
|
||||
public void didClickRemoveVault() {
|
||||
|
||||
Reference in New Issue
Block a user