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);

Reply via email to