fixed broken bidi binding

This commit is contained in:
Sebastian Stenzel
2021-10-05 10:09:33 +02:00
parent 0d240cdb2d
commit 813c69f6ac
2 changed files with 9 additions and 5 deletions

View File

@@ -5,6 +5,7 @@ import org.cryptomator.ui.common.FxController;
import javax.inject.Inject;
import javafx.beans.binding.Binding;
import javafx.beans.binding.Bindings;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.control.CheckBox;
@@ -17,7 +18,7 @@ public class CheckListCellController implements FxController {
private final Binding<Boolean> checkRunnable;
/* FXML */
public CheckBox forRunSelectedCheckBox;
public CheckBox checkbox;
@Inject
public CheckListCellController() {
@@ -27,9 +28,12 @@ public class CheckListCellController implements FxController {
}
public void initialize() {
forRunSelectedCheckBox.selectedProperty().addListener((observable, wasSelected, isSelected) -> {
if (check.get() != null) {
check.get().chosenForExecutionProperty().set(isSelected);
check.addListener((observable, oldVal, newVal) -> {
if (oldVal != null) {
Bindings.unbindBidirectional(checkbox.selectedProperty(), oldVal.chosenForExecutionProperty());
}
if (newVal != null) {
Bindings.bindBidirectional(checkbox.selectedProperty(), newVal.chosenForExecutionProperty());
}
});
}