瀏覽代碼

Migrate to easybind fork

infeo 4 年之前
父節點
當前提交
06f4e160d6

+ 1 - 1
main/commons/pom.xml

@@ -44,7 +44,7 @@
 
 		<!-- EasyBind -->
 		<dependency>
-			<groupId>org.fxmisc.easybind</groupId>
+			<groupId>com.tobiasdiez</groupId>
 			<artifactId>easybind</artifactId>
 		</dependency>
 

+ 1 - 1
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;
 

+ 1 - 1
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;

+ 2 - 2
main/pom.xml

@@ -35,7 +35,7 @@
 		<commons-lang3.version>3.11</commons-lang3.version>
 		<secret-service.version>1.1.0</secret-service.version>
 		<jwt.version>3.10.3</jwt.version>
-		<easybind.version>1.0.3</easybind.version>
+		<easybind.version>2.1.0</easybind.version>
 		<guava.version>29.0-jre</guava.version>
 		<dagger.version>2.22</dagger.version>
 		<gson.version>2.8.6</gson.version>
@@ -178,7 +178,7 @@
 
 			<!-- EasyBind -->
 			<dependency>
-				<groupId>org.fxmisc.easybind</groupId>
+				<groupId>com.tobiasdiez</groupId>
 				<artifactId>easybind</artifactId>
 				<version>${easybind.version}</version>
 			</dependency>

+ 1 - 1
main/ui/pom.xml

@@ -35,7 +35,7 @@
 
 		<!-- EasyBind -->
 		<dependency>
-			<groupId>org.fxmisc.easybind</groupId>
+			<groupId>com.tobiasdiez</groupId>
 			<artifactId>easybind</artifactId>
 		</dependency>
 

+ 1 - 1
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;
 

+ 1 - 1
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;
 

+ 1 - 1
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 {
 

+ 14 - 8
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> 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

+ 1 - 1
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;

+ 11 - 5
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> 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 */

+ 14 - 8
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 */

+ 1 - 1
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: