This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new b6bf94b ISIS-2340: some comments
b6bf94b is described below
commit b6bf94b9737cc4a553952efb9327287d8837df4d
Author: Andi Huber <[email protected]>
AuthorDate: Mon Aug 17 08:49:00 2020 +0200
ISIS-2340: some comments
---
.../viewer/javafx/model/binding/BindingsFx.java | 25 +++++++++++++++-------
1 file changed, 17 insertions(+), 8 deletions(-)
diff --git
a/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/binding/BindingsFx.java
b/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/binding/BindingsFx.java
index 9e28653..2cc79e2 100644
---
a/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/binding/BindingsFx.java
+++
b/incubator/viewers/javafx/model/src/main/java/org/apache/isis/incubator/viewer/javafx/model/binding/BindingsFx.java
@@ -163,6 +163,15 @@ public class BindingsFx {
// -- HELPER
+ /**
+ * @param oldPojo
+ * @param newPojo
+ * @param oldValue
+ * @param newValue
+ * @apiNote not pretty, but to not having to duplicate this logic:
+ * either uses both pojos and ignores both managed objects (propagate
changes left to right)
+ * or vice versa.
+ */
private void changed(T oldPojo, T newPojo, ManagedObject oldValue,
ManagedObject newValue) {
if (updating) {
return;
@@ -175,17 +184,17 @@ public class BindingsFx {
try {
updating = true;
- if(newValue!=null) {
- left.setValue(converter.unwrap(newValue));
- } else {
- right.setValue(converter.wrap(newPojo));
+ if(newValue!=null) { // direction
+ left.setValue(converter.unwrap(newValue)); // propagate
changes right to left
+ } else {
+ right.setValue(converter.wrap(newPojo)); // propagate
changes left to right
}
} catch (RuntimeException e) {
try {
- if(newValue!=null) {
- left.setValue(converter.unwrap(oldValue));
- } else {
- right.setValue(converter.wrap(oldPojo));
+ if(newValue!=null) { // direction
+ left.setValue(converter.unwrap(oldValue)); //
propagate changes right to left
+ } else {
+ right.setValue(converter.wrap(oldPojo)); // propagate
changes left to right
}
} catch (Exception e2) {
e2.addSuppressed(e);