diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java index 436fc837f..6e35ffab2 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/Vault.java @@ -10,14 +10,10 @@ package org.cryptomator.common.vaults; import com.google.common.base.Strings; import javafx.beans.Observable; -import javafx.beans.binding.Binding; import javafx.beans.binding.Bindings; import javafx.beans.binding.BooleanBinding; -import javafx.beans.binding.ObjectBinding; import javafx.beans.binding.StringBinding; import javafx.beans.property.ObjectProperty; -import javafx.beans.property.SimpleObjectProperty; -import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.SystemUtils; import org.cryptomator.common.LazyInitializer; import org.cryptomator.common.settings.VaultSettings; @@ -27,32 +23,26 @@ import org.cryptomator.cryptofs.CryptoFileSystemProperties.FileSystemFlags; import org.cryptomator.cryptofs.CryptoFileSystemProvider; import org.cryptomator.cryptolib.api.CryptoException; import org.cryptomator.cryptolib.api.InvalidPassphraseException; -import org.fxmisc.easybind.EasyBind; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.inject.Inject; import javax.inject.Provider; import java.io.IOException; -import java.nio.file.FileAlreadyExistsException; -import java.nio.file.Files; import java.nio.file.NoSuchFileException; import java.nio.file.NotDirectoryException; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.ArrayList; import java.util.EnumSet; -import java.util.List; import java.util.Objects; import java.util.Set; import java.util.concurrent.atomic.AtomicReference; -import java.util.function.Predicate; import static org.cryptomator.common.Constants.MASTERKEY_FILENAME; @PerVault public class Vault { - + private static final Logger LOG = LoggerFactory.getLogger(Vault.class); private static final Path HOME_DIR = Paths.get(SystemUtils.USER_HOME); @@ -69,7 +59,8 @@ public class Vault { private final BooleanBinding unlocked; private final BooleanBinding missing; private final BooleanBinding needsMigration; - private final ObjectBinding accessPoint; + private final StringBinding accessPoint; + private final BooleanBinding accessPointPresent; private volatile Volume volume; @@ -88,7 +79,8 @@ public class Vault { this.unlocked = Bindings.createBooleanBinding(this::isUnlocked, state); this.missing = Bindings.createBooleanBinding(this::isMissing, state); this.needsMigration = Bindings.createBooleanBinding(this::isNeedsMigration, state); - this.accessPoint = Bindings.createObjectBinding(this::getAccessPoint, state); + this.accessPoint = Bindings.createStringBinding(this::getAccessPoint, state); + this.accessPointPresent = this.accessPoint.isNotEmpty(); } // ****************************************************************************** @@ -188,11 +180,11 @@ public class Vault { public boolean isMissing() { return state.get() == VaultState.MISSING; } - + public BooleanBinding needsMigrationProperty() { return needsMigration; } - + public boolean isNeedsMigration() { return state.get() == VaultState.NEEDS_MIGRATION; } @@ -206,19 +198,27 @@ public class Vault { return p.getFileName().toString(); } - public ObjectBinding accessPointProperty() { + public StringBinding accessPointProperty() { return accessPoint; } - public Path getAccessPoint() { + public String getAccessPoint() { if (state.get() == VaultState.UNLOCKED) { assert volume != null; - return volume.getMountPoint().orElse(Path.of("")); + return volume.getMountPoint().orElse(Path.of("")).toString(); } else { - return Path.of(""); + return ""; } } + public BooleanBinding accessPointPresentProperty() { + return accessPointPresent; + } + + public boolean isAccessPointPresent() { + return accessPointPresent.get(); + } + public StringBinding displayablePathProperty() { return displayablePath; } diff --git a/main/ui/src/main/resources/fxml/vault_detail_unlocked.fxml b/main/ui/src/main/resources/fxml/vault_detail_unlocked.fxml index f3d6242dd..5bc69b1fd 100644 --- a/main/ui/src/main/resources/fxml/vault_detail_unlocked.fxml +++ b/main/ui/src/main/resources/fxml/vault_detail_unlocked.fxml @@ -18,7 +18,8 @@