|
@@ -226,25 +226,14 @@ public class VaultListController implements FxController {
|
|
|
VaultListManager.redetermineVaultState(newValue);
|
|
|
}
|
|
|
|
|
|
- @FXML
|
|
|
- public void didClickAddNewVault() {
|
|
|
- addVaultWizard.build().showAddNewVaultWizard(resourceBundle);
|
|
|
- }
|
|
|
-
|
|
|
- @FXML
|
|
|
- public void didClickAddExistingVault() {
|
|
|
- addVaultWizard.build().showAddExistingVaultWizard(resourceBundle);
|
|
|
- }
|
|
|
-
|
|
|
- @FXML
|
|
|
- public void didClickRecoverExistingVault() {
|
|
|
+ private Optional<File> chooseValidVaultDirectory() {
|
|
|
DirectoryChooser directoryChooser = new DirectoryChooser();
|
|
|
File selectedDirectory;
|
|
|
|
|
|
do {
|
|
|
selectedDirectory = directoryChooser.showDialog(mainWindow);
|
|
|
if (selectedDirectory == null) {
|
|
|
- return;
|
|
|
+ return Optional.empty();
|
|
|
}
|
|
|
|
|
|
Path selectedPath = selectedDirectory.toPath();
|
|
@@ -254,7 +243,27 @@ public class VaultListController implements FxController {
|
|
|
}
|
|
|
} while (selectedDirectory == null);
|
|
|
|
|
|
- Vault preparedVault = VaultPreparator.prepareVault(selectedDirectory, vaultComponentFactory, mountServices);
|
|
|
+ return Optional.of(selectedDirectory);
|
|
|
+ }
|
|
|
+
|
|
|
+ @FXML
|
|
|
+ public void didClickAddNewVault() {
|
|
|
+ addVaultWizard.build().showAddNewVaultWizard(resourceBundle);
|
|
|
+ }
|
|
|
+
|
|
|
+ @FXML
|
|
|
+ public void didClickAddExistingVault() {
|
|
|
+ addVaultWizard.build().showAddExistingVaultWizard(resourceBundle);
|
|
|
+ }
|
|
|
+
|
|
|
+ @FXML
|
|
|
+ public void didClickRecoverExistingVault() {
|
|
|
+ Optional<File> selectedDirectory = chooseValidVaultDirectory();
|
|
|
+ if (selectedDirectory.isEmpty()) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ Vault preparedVault = VaultPreparator.prepareVault(selectedDirectory.get(), vaultComponentFactory, mountServices);
|
|
|
|
|
|
Optional<Vault> matchingVaultListEntry = vaultListManager.get(preparedVault.getPath());
|
|
|
if (matchingVaultListEntry.isPresent()) {
|