Parcourir la source

allow adding *.cryptomator files to vault list

Sebastian Stenzel il y a 10 ans
Parent
commit
efac770915

+ 19 - 8
main/ui/src/main/java/org/cryptomator/ui/MainController.java

@@ -134,16 +134,27 @@ public class MainController implements Initializable, InitializationListener, Un
 	/**
 	 * adds the given directory or selects it if it is already in the list of directories.
 	 * 
-	 * @param dir non-null, writable, existing directory
+	 * @param path non-null, writable, existing directory
 	 */
-	void addVault(final Path dir, boolean select) {
-		if (dir != null && Files.isWritable(dir)) {
-			final Vault vault = new Vault(dir);
-			if (!directoryList.getItems().contains(vault)) {
-				directoryList.getItems().add(vault);
-			}
-			directoryList.getSelectionModel().select(vault);
+	void addVault(final Path path, boolean select) {
+		if (path == null || !Files.isWritable(path)) {
+			return;
+		}
+
+		final Path vaultPath;
+		if (path != null && Files.isDirectory(path)) {
+			vaultPath = path;
+		} else if (Files.isRegularFile(path) && path.getParent().getFileName().toString().endsWith(Vault.VAULT_FILE_EXTENSION)) {
+			vaultPath = path.getParent();
+		} else {
+			return;
+		}
+
+		final Vault vault = new Vault(vaultPath);
+		if (!directoryList.getItems().contains(vault)) {
+			directoryList.getItems().add(vault);
 		}
+		directoryList.getSelectionModel().select(vault);
 	}
 
 	private ListCell<Vault> createDirecoryListCell(ListView<Vault> param) {

+ 1 - 4
main/ui/src/main/resources/fxml/initialize.fxml

@@ -43,10 +43,7 @@
 		
 		<!-- Row 3 -->
 		<Button fx:id="okButton" defaultButton="true" GridPane.rowIndex="3" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.halignment="RIGHT" text="%initialize.button.ok" prefWidth="150.0" onAction="#initializeVault" focusTraversable="false" disable="true" />
-		
-		<!-- Row 4 -->
-		<ProgressIndicator progress="-1" fx:id="progressIndicator" GridPane.rowIndex="4" GridPane.columnIndex="0" GridPane.columnSpan="2" GridPane.halignment="CENTER" visible="false"/>
-		
+				
 		<!-- Row 5 -->
 		<Label fx:id="messageLabel" GridPane.rowIndex="5" GridPane.columnIndex="0" GridPane.columnSpan="2" />
 	</children>