diff --git a/main/commons/pom.xml b/main/commons/pom.xml
index 54e711559..a6d00c2db 100644
--- a/main/commons/pom.xml
+++ b/main/commons/pom.xml
@@ -44,7 +44,7 @@
- org.fxmisc.easybind
+ com.tobiasdiez
easybind
diff --git a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java
index bac0114da..93e0d3d44 100644
--- a/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java
+++ b/main/commons/src/main/java/org/cryptomator/common/CommonsModule.java
@@ -5,6 +5,7 @@
*******************************************************************************/
package org.cryptomator.common;
+import com.tobiasdiez.easybind.EasyBind;
import dagger.Module;
import dagger.Provides;
import javafx.beans.binding.Binding;
@@ -17,7 +18,6 @@ import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultComponent;
import org.cryptomator.common.vaults.VaultListManager;
import org.cryptomator.frontend.webdav.WebDavServer;
-import org.fxmisc.easybind.EasyBind;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java
index 13a0c8eed..a440b2bab 100644
--- a/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java
+++ b/main/commons/src/main/java/org/cryptomator/common/settings/VaultSettings.java
@@ -7,6 +7,7 @@ package org.cryptomator.common.settings;
import com.google.common.base.Strings;
import com.google.common.io.BaseEncoding;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.Observable;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.IntegerProperty;
@@ -17,7 +18,6 @@ import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import org.apache.commons.lang3.StringUtils;
-import org.fxmisc.easybind.EasyBind;
import java.nio.file.Path;
import java.util.Objects;
diff --git a/main/pom.xml b/main/pom.xml
index 0e9dd8a26..e08f71378 100644
--- a/main/pom.xml
+++ b/main/pom.xml
@@ -35,7 +35,7 @@
3.11
1.1.0
3.10.3
- 1.0.3
+ 2.1.0
29.0-jre
2.22
2.8.6
@@ -178,7 +178,7 @@
- org.fxmisc.easybind
+ com.tobiasdiez
easybind
${easybind.version}
diff --git a/main/ui/pom.xml b/main/ui/pom.xml
index c27fbb1aa..0991215cc 100644
--- a/main/ui/pom.xml
+++ b/main/ui/pom.xml
@@ -35,7 +35,7 @@
- org.fxmisc.easybind
+ com.tobiasdiez
easybind
diff --git a/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java b/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java
index 24f3ac8db..6a14272e7 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java
@@ -1,5 +1,6 @@
package org.cryptomator.ui.common;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.binding.BooleanBinding;
@@ -10,7 +11,6 @@ import javafx.fxml.FXML;
import javafx.scene.control.Label;
import org.cryptomator.ui.controls.FontAwesome5IconView;
import org.cryptomator.ui.controls.NiceSecurePasswordField;
-import org.fxmisc.easybind.EasyBind;
import java.util.ResourceBundle;
diff --git a/main/ui/src/main/java/org/cryptomator/ui/controls/DraggableListCell.java b/main/ui/src/main/java/org/cryptomator/ui/controls/DraggableListCell.java
index 62f87c1f4..ca78bcac6 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/controls/DraggableListCell.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/controls/DraggableListCell.java
@@ -8,6 +8,7 @@
*******************************************************************************/
package org.cryptomator.ui.controls;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.scene.SnapshotParameters;
@@ -18,7 +19,6 @@ import javafx.scene.input.DragEvent;
import javafx.scene.input.Dragboard;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.TransferMode;
-import org.fxmisc.easybind.EasyBind;
import java.util.List;
diff --git a/main/ui/src/main/java/org/cryptomator/ui/controls/PasswordStrengthIndicator.java b/main/ui/src/main/java/org/cryptomator/ui/controls/PasswordStrengthIndicator.java
index a1619968b..156da3b0b 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/controls/PasswordStrengthIndicator.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/controls/PasswordStrengthIndicator.java
@@ -1,12 +1,12 @@
package org.cryptomator.ui.controls;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
-import org.fxmisc.easybind.EasyBind;
public class PasswordStrengthIndicator extends HBox {
diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java
index 36a746039..e384a67bc 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java
@@ -1,5 +1,6 @@
package org.cryptomator.ui.mainwindow;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.binding.Binding;
import javafx.beans.binding.BooleanBinding;
import javafx.beans.property.ObjectProperty;
@@ -10,7 +11,6 @@ import org.cryptomator.common.vaults.VaultState;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.controls.FontAwesome5Icon;
import org.cryptomator.ui.fxapp.FxApplication;
-import org.fxmisc.easybind.EasyBind;
import javax.inject.Inject;
@@ -26,17 +26,23 @@ public class VaultDetailController implements FxController {
VaultDetailController(ObjectProperty vault, FxApplication application) {
this.vault = vault;
this.application = application;
- this.glyph = EasyBind.select(vault).selectObject(Vault::stateProperty).map(this::getGlyphForVaultState).orElse(FontAwesome5Icon.EXCLAMATION_TRIANGLE);
+ this.glyph = EasyBind.select(vault) //
+ .selectObject(Vault::stateProperty) //
+ .map(this::getGlyphForVaultState);
this.anyVaultSelected = vault.isNotNull();
}
private FontAwesome5Icon getGlyphForVaultState(VaultState state) {
- return switch (state) {
- case LOCKED -> FontAwesome5Icon.LOCK;
- case PROCESSING -> FontAwesome5Icon.SPINNER;
- case UNLOCKED -> FontAwesome5Icon.LOCK_OPEN;
- case NEEDS_MIGRATION, MISSING, ERROR -> FontAwesome5Icon.EXCLAMATION_TRIANGLE;
- };
+ if (state != null) {
+ return switch (state) {
+ case LOCKED -> FontAwesome5Icon.LOCK;
+ case PROCESSING -> FontAwesome5Icon.SPINNER;
+ case UNLOCKED -> FontAwesome5Icon.LOCK_OPEN;
+ case NEEDS_MIGRATION, MISSING, ERROR -> FontAwesome5Icon.EXCLAMATION_TRIANGLE;
+ };
+ } else {
+ return FontAwesome5Icon.EXCLAMATION_TRIANGLE;
+ }
}
@FXML
diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailLockedController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailLockedController.java
index 55720521b..f615d51ca 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailLockedController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailLockedController.java
@@ -1,5 +1,6 @@
package org.cryptomator.ui.mainwindow;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.binding.BooleanExpression;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ReadOnlyObjectProperty;
@@ -11,7 +12,6 @@ import org.cryptomator.keychain.KeychainManager;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.fxapp.FxApplication;
import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
-import org.fxmisc.easybind.EasyBind;
import javax.inject.Inject;
import java.util.Optional;
diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java
index 4c23ba4ae..b975174f8 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailUnknownErrorController.java
@@ -1,10 +1,10 @@
package org.cryptomator.ui.mainwindow;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.binding.Binding;
import javafx.beans.property.ObjectProperty;
import org.cryptomator.common.vaults.Vault;
import org.cryptomator.ui.common.FxController;
-import org.fxmisc.easybind.EasyBind;
import javax.inject.Inject;
import java.io.ByteArrayOutputStream;
@@ -18,14 +18,20 @@ public class VaultDetailUnknownErrorController implements FxController {
@Inject
public VaultDetailUnknownErrorController(ObjectProperty vault) {
- this.stackTrace = EasyBind.select(vault).selectObject(Vault::lastKnownExceptionProperty).map(this::provideStackTrace).orElse("");
+ this.stackTrace = EasyBind.select(vault) //
+ .selectObject(Vault::lastKnownExceptionProperty) //
+ .map(this::provideStackTrace);
}
private String provideStackTrace(Throwable cause) {
// TODO deduplicate ErrorModule.java
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- cause.printStackTrace(new PrintStream(baos));
- return baos.toString(StandardCharsets.UTF_8);
+ if (cause != null) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ cause.printStackTrace(new PrintStream(baos));
+ return baos.toString(StandardCharsets.UTF_8);
+ } else {
+ return "";
+ }
}
/* Getter/Setter */
diff --git a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListCellController.java b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListCellController.java
index 6703ec674..999afaaf1 100644
--- a/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListCellController.java
+++ b/main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListCellController.java
@@ -1,5 +1,6 @@
package org.cryptomator.ui.mainwindow;
+import com.tobiasdiez.easybind.EasyBind;
import javafx.beans.binding.Binding;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
@@ -7,7 +8,6 @@ import org.cryptomator.common.vaults.Vault;
import org.cryptomator.common.vaults.VaultState;
import org.cryptomator.ui.common.FxController;
import org.cryptomator.ui.controls.FontAwesome5Icon;
-import org.fxmisc.easybind.EasyBind;
import javax.inject.Inject;
@@ -19,16 +19,22 @@ public class VaultListCellController implements FxController {
@Inject
VaultListCellController() {
- this.glyph = EasyBind.select(vault).selectObject(Vault::stateProperty).map(this::getGlyphForVaultState).orElse(FontAwesome5Icon.EXCLAMATION_TRIANGLE);
+ this.glyph = EasyBind.select(vault) //
+ .selectObject(Vault::stateProperty) //
+ .map(this::getGlyphForVaultState);
}
private FontAwesome5Icon getGlyphForVaultState(VaultState state) {
- return switch (state) {
- case LOCKED -> FontAwesome5Icon.LOCK;
- case PROCESSING -> FontAwesome5Icon.SPINNER;
- case UNLOCKED -> FontAwesome5Icon.LOCK_OPEN;
- case NEEDS_MIGRATION, MISSING, ERROR -> FontAwesome5Icon.EXCLAMATION_TRIANGLE;
- };
+ if(state != null){
+ return switch (state) {
+ case LOCKED -> FontAwesome5Icon.LOCK;
+ case PROCESSING -> FontAwesome5Icon.SPINNER;
+ case UNLOCKED -> FontAwesome5Icon.LOCK_OPEN;
+ case NEEDS_MIGRATION, MISSING, ERROR -> FontAwesome5Icon.EXCLAMATION_TRIANGLE;
+ };
+ } else {
+ return FontAwesome5Icon.EXCLAMATION_TRIANGLE;
+ }
}
/* Getter/Setter */
diff --git a/main/ui/src/main/resources/license/THIRD-PARTY.txt b/main/ui/src/main/resources/license/THIRD-PARTY.txt
index 58a034c81..4fb29473b 100644
--- a/main/ui/src/main/resources/license/THIRD-PARTY.txt
+++ b/main/ui/src/main/resources/license/THIRD-PARTY.txt
@@ -84,7 +84,7 @@ Cryptomator uses 52 third-party dependencies under the following licenses:
- Checker Qual (org.checkerframework:checker-qual:2.11.1 - https://checkerframework.org)
- SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org)
The BSD 2-Clause License:
- - EasyBind (org.fxmisc.easybind:easybind:1.0.3 - http://www.fxmisc.org/easybind/)
+ - EasyBind (com.tobiasdiez:easybind:2.1.0 - https://github.com/tobiasdiez/EasyBind)
Cryptomator uses other third-party assets under the following licenses:
SIL OFL 1.1 License: