infeo 4 years ago
parent
commit
8f5c4997b1

+ 1 - 1
main/commons/pom.xml

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

+ 1 - 1
main/commons/src/main/java/org/cryptomator/common/CommonsModule.java

@@ -5,6 +5,7 @@
  *******************************************************************************/
  *******************************************************************************/
 package org.cryptomator.common;
 package org.cryptomator.common;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import dagger.Module;
 import dagger.Module;
 import dagger.Provides;
 import dagger.Provides;
 import javafx.beans.binding.Binding;
 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.VaultComponent;
 import org.cryptomator.common.vaults.VaultListManager;
 import org.cryptomator.common.vaults.VaultListManager;
 import org.cryptomator.frontend.webdav.WebDavServer;
 import org.cryptomator.frontend.webdav.WebDavServer;
-import org.fxmisc.easybind.EasyBind;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 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.base.Strings;
 import com.google.common.io.BaseEncoding;
 import com.google.common.io.BaseEncoding;
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.Observable;
 import javafx.beans.Observable;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.IntegerProperty;
 import javafx.beans.property.IntegerProperty;
@@ -17,7 +18,6 @@ import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.property.SimpleStringProperty;
 import javafx.beans.property.SimpleStringProperty;
 import javafx.beans.property.StringProperty;
 import javafx.beans.property.StringProperty;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
-import org.fxmisc.easybind.EasyBind;
 
 
 import java.nio.file.Path;
 import java.nio.file.Path;
 import java.util.Objects;
 import java.util.Objects;

+ 2 - 2
main/pom.xml

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

+ 1 - 1
main/ui/pom.xml

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

+ 4 - 3
main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultLocationController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.addvaultwizard;
 package org.cryptomator.ui.addvaultwizard;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import dagger.Lazy;
 import dagger.Lazy;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.binding.BooleanBinding;
@@ -83,11 +84,11 @@ public class CreateNewVaultLocationController implements FxController {
 	public void initialize() {
 	public void initialize() {
 		predefinedLocationToggler.selectedToggleProperty().addListener(this::togglePredefinedLocation);
 		predefinedLocationToggler.selectedToggleProperty().addListener(this::togglePredefinedLocation);
 		usePresetPath.bind(predefinedLocationToggler.selectedToggleProperty().isNotEqualTo(customRadioButton));
 		usePresetPath.bind(predefinedLocationToggler.selectedToggleProperty().isNotEqualTo(customRadioButton));
-		vaultPath.addListener(this::vaultPathDidChange);
+		EasyBind.subscribe(vaultPath, this::vaultPathDidChange);
 	}
 	}
 
 
-	private void vaultPathDidChange(@SuppressWarnings("unused") ObservableValue<? extends Path> observable, @SuppressWarnings("unused") Path oldValue, Path newValue) {
-		if (!Files.notExists(newValue)) {
+	private void vaultPathDidChange(Path newValue) {
+		if ( newValue != null && !Files.notExists(newValue)) {
 			warningText.set(resourceBundle.getString("addvaultwizard.new.fileAlreadyExists"));
 			warningText.set(resourceBundle.getString("addvaultwizard.new.fileAlreadyExists"));
 		} else {
 		} else {
 			warningText.set(null);
 			warningText.set(null);

+ 0 - 1
main/ui/src/main/java/org/cryptomator/ui/addvaultwizard/CreateNewVaultPasswordController.java

@@ -32,7 +32,6 @@ import javax.inject.Named;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.UncheckedIOException;
 import java.io.UncheckedIOException;
 import java.nio.channels.WritableByteChannel;
 import java.nio.channels.WritableByteChannel;
-import java.nio.file.FileAlreadyExistsException;
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystem;
 import java.nio.file.Files;
 import java.nio.file.Files;
 import java.nio.file.NoSuchFileException;
 import java.nio.file.NoSuchFileException;

+ 1 - 1
main/ui/src/main/java/org/cryptomator/ui/common/NewPasswordController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.common;
 package org.cryptomator.ui.common;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.Observable;
 import javafx.beans.Observable;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.binding.BooleanBinding;
@@ -10,7 +11,6 @@ import javafx.fxml.FXML;
 import javafx.scene.control.Label;
 import javafx.scene.control.Label;
 import org.cryptomator.ui.controls.FontAwesome5IconView;
 import org.cryptomator.ui.controls.FontAwesome5IconView;
 import org.cryptomator.ui.controls.NiceSecurePasswordField;
 import org.cryptomator.ui.controls.NiceSecurePasswordField;
-import org.fxmisc.easybind.EasyBind;
 
 
 import java.util.ResourceBundle;
 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;
 package org.cryptomator.ui.controls;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.property.SimpleBooleanProperty;
 import javafx.scene.SnapshotParameters;
 import javafx.scene.SnapshotParameters;
@@ -18,7 +19,6 @@ import javafx.scene.input.DragEvent;
 import javafx.scene.input.Dragboard;
 import javafx.scene.input.Dragboard;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.input.TransferMode;
 import javafx.scene.input.TransferMode;
-import org.fxmisc.easybind.EasyBind;
 
 
 import java.util.List;
 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;
 package org.cryptomator.ui.controls;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.IntegerProperty;
 import javafx.beans.property.IntegerProperty;
 import javafx.beans.property.SimpleIntegerProperty;
 import javafx.beans.property.SimpleIntegerProperty;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.HBox;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.Priority;
 import javafx.scene.layout.Region;
 import javafx.scene.layout.Region;
-import org.fxmisc.easybind.EasyBind;
 
 
 public class PasswordStrengthIndicator extends HBox {
 public class PasswordStrengthIndicator extends HBox {
 
 

+ 3 - 2
main/ui/src/main/java/org/cryptomator/ui/fxapp/FxApplication.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.fxapp;
 package org.cryptomator.ui.fxapp;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import dagger.Lazy;
 import dagger.Lazy;
 import javafx.application.Application;
 import javafx.application.Application;
 import javafx.application.Platform;
 import javafx.application.Platform;
@@ -64,7 +65,7 @@ public class FxApplication extends Application {
 		LOG.trace("FxApplication.start()");
 		LOG.trace("FxApplication.start()");
 		Platform.setImplicitExit(false);
 		Platform.setImplicitExit(false);
 
 
-		hasVisibleStages.addListener(this::hasVisibleStagesChanged);
+		EasyBind.subscribe(hasVisibleStages, this::hasVisibleStagesChanged);
 
 
 		settings.theme().addListener(this::themeChanged);
 		settings.theme().addListener(this::themeChanged);
 		loadSelectedStyleSheet(settings.theme().get());
 		loadSelectedStyleSheet(settings.theme().get());
@@ -75,7 +76,7 @@ public class FxApplication extends Application {
 		throw new UnsupportedOperationException("Use start() instead.");
 		throw new UnsupportedOperationException("Use start() instead.");
 	}
 	}
 
 
-	private void hasVisibleStagesChanged(@SuppressWarnings("unused") ObservableValue<? extends Boolean> observableValue, @SuppressWarnings("unused") boolean oldValue, boolean newValue) {
+	private void hasVisibleStagesChanged(boolean newValue) {
 		if (newValue) {
 		if (newValue) {
 			macFunctions.map(MacFunctions::uiState).ifPresent(MacApplicationUiState::transformToForegroundApplication);
 			macFunctions.map(MacFunctions::uiState).ifPresent(MacApplicationUiState::transformToForegroundApplication);
 		} else {
 		} else {

+ 14 - 8
main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.mainwindow;
 package org.cryptomator.ui.mainwindow;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.ObjectProperty;
 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.common.FxController;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
 import org.cryptomator.ui.fxapp.FxApplication;
 import org.cryptomator.ui.fxapp.FxApplication;
-import org.fxmisc.easybind.EasyBind;
 
 
 import javax.inject.Inject;
 import javax.inject.Inject;
 
 
@@ -26,17 +26,23 @@ public class VaultDetailController implements FxController {
 	VaultDetailController(ObjectProperty<Vault> vault, FxApplication application) {
 	VaultDetailController(ObjectProperty<Vault> vault, FxApplication application) {
 		this.vault = vault;
 		this.vault = vault;
 		this.application = application;
 		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();
 		this.anyVaultSelected = vault.isNotNull();
 	}
 	}
 
 
 	private FontAwesome5Icon getGlyphForVaultState(VaultState state) {
 	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
 	@FXML

+ 1 - 1
main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultDetailLockedController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.mainwindow;
 package org.cryptomator.ui.mainwindow;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.BooleanExpression;
 import javafx.beans.binding.BooleanExpression;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ReadOnlyObjectProperty;
 import javafx.beans.property.ReadOnlyObjectProperty;
@@ -11,7 +12,6 @@ import org.cryptomator.keychain.KeychainManager;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.fxapp.FxApplication;
 import org.cryptomator.ui.fxapp.FxApplication;
 import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
 import org.cryptomator.ui.vaultoptions.VaultOptionsComponent;
-import org.fxmisc.easybind.EasyBind;
 
 
 import javax.inject.Inject;
 import javax.inject.Inject;
 import java.util.Optional;
 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;
 package org.cryptomator.ui.mainwindow;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.Binding;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ObjectProperty;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.common.FxController;
-import org.fxmisc.easybind.EasyBind;
 
 
 import javax.inject.Inject;
 import javax.inject.Inject;
 import java.io.ByteArrayOutputStream;
 import java.io.ByteArrayOutputStream;
@@ -18,14 +18,20 @@ public class VaultDetailUnknownErrorController implements FxController {
 
 
 	@Inject
 	@Inject
 	public VaultDetailUnknownErrorController(ObjectProperty<Vault> vault) {
 	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) {
 	private String provideStackTrace(Throwable cause) {
 		// TODO deduplicate ErrorModule.java
 		// 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 */
 	/* Getter/Setter */

+ 14 - 8
main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListCellController.java

@@ -1,5 +1,6 @@
 package org.cryptomator.ui.mainwindow;
 package org.cryptomator.ui.mainwindow;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.Binding;
 import javafx.beans.binding.Binding;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
@@ -7,7 +8,6 @@ import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.common.vaults.VaultState;
 import org.cryptomator.common.vaults.VaultState;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
 import org.cryptomator.ui.controls.FontAwesome5Icon;
-import org.fxmisc.easybind.EasyBind;
 
 
 import javax.inject.Inject;
 import javax.inject.Inject;
 
 
@@ -19,16 +19,22 @@ public class VaultListCellController implements FxController {
 
 
 	@Inject
 	@Inject
 	VaultListCellController() {
 	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) {
 	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 */
 	/* Getter/Setter */

+ 5 - 8
main/ui/src/main/java/org/cryptomator/ui/mainwindow/VaultListController.java

@@ -1,16 +1,15 @@
 package org.cryptomator.ui.mainwindow;
 package org.cryptomator.ui.mainwindow;
 
 
+import com.tobiasdiez.easybind.EasyBind;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ObjectProperty;
-import javafx.beans.value.ObservableValue;
 import javafx.collections.ListChangeListener;
 import javafx.collections.ListChangeListener;
 import javafx.collections.ObservableList;
 import javafx.collections.ObservableList;
 import javafx.fxml.FXML;
 import javafx.fxml.FXML;
 import javafx.scene.control.ListView;
 import javafx.scene.control.ListView;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.common.vaults.Vault;
 import org.cryptomator.common.vaults.VaultListManager;
 import org.cryptomator.common.vaults.VaultListManager;
-import org.cryptomator.common.vaults.VaultState;
 import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
 import org.cryptomator.ui.addvaultwizard.AddVaultWizardComponent;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.common.FxController;
 import org.cryptomator.ui.removevault.RemoveVaultComponent;
 import org.cryptomator.ui.removevault.RemoveVaultComponent;
@@ -18,7 +17,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
 import javax.inject.Inject;
 import javax.inject.Inject;
-import java.io.IOException;
 
 
 @MainWindowScoped
 @MainWindowScoped
 public class VaultListController implements FxController {
 public class VaultListController implements FxController {
@@ -43,7 +41,7 @@ public class VaultListController implements FxController {
 		this.removeVault = removeVault;
 		this.removeVault = removeVault;
 		this.noVaultSelected = selectedVault.isNull();
 		this.noVaultSelected = selectedVault.isNull();
 		this.emptyVaultList = Bindings.isEmpty(vaults);
 		this.emptyVaultList = Bindings.isEmpty(vaults);
-		selectedVault.addListener(this::selectedVaultDidChange);
+		EasyBind.subscribe(selectedVault, this::selectedVaultDidChange);
 	}
 	}
 
 
 	public void initialize() {
 	public void initialize() {
@@ -60,11 +58,10 @@ public class VaultListController implements FxController {
 		});
 		});
 	}
 	}
 
 
-	private void selectedVaultDidChange(@SuppressWarnings("unused") ObservableValue<? extends Vault> observableValue, @SuppressWarnings("unused") Vault oldValue, Vault newValue) {
-		if (newValue == null) {
-			return;
+	private void selectedVaultDidChange(Vault newValue) {
+		if (newValue != null) {
+			VaultListManager.redetermineVaultState(newValue);
 		}
 		}
-		VaultListManager.redetermineVaultState(newValue);
 	}
 	}
 
 
 	@FXML
 	@FXML

+ 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)
 		- 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)
 		- SLF4J API Module (org.slf4j:slf4j-api:1.7.30 - http://www.slf4j.org)
 	The BSD 2-Clause License:
 	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:
 Cryptomator uses other third-party assets under the following licenses:
 	SIL OFL 1.1 License:
 	SIL OFL 1.1 License: