You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/05/05 06:35:30 UTC

git commit: [flex-asjs] [refs/heads/develop] - fix binding to functions that don't have change events

Repository: flex-asjs
Updated Branches:
  refs/heads/develop 2646884b0 -> 38d40b6bb


fix binding to functions that don't have change events


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/38d40b6b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/38d40b6b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/38d40b6b

Branch: refs/heads/develop
Commit: 38d40b6bb9cb90b1697a3b97fe17c815f5f0bf02
Parents: 2646884
Author: Alex Harui <ah...@apache.org>
Authored: Wed May 4 23:35:04 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed May 4 23:35:14 2016 -0700

----------------------------------------------------------------------
 .../flex/org/apache/flex/binding/ApplicationDataBinding.as  | 9 +++++++++
 .../flex/org/apache/flex/binding/ContainerDataBinding.as    | 9 +++++++++
 .../org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as  | 9 +++++++++
 .../flex/org/apache/flex/binding/ViewBaseDataBinding.as     | 9 +++++++++
 4 files changed, 36 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/38d40b6b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
index 8d794b9..3902ebc 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ApplicationDataBinding.as
@@ -214,6 +214,8 @@ package org.apache.flex.binding
         
         private function setupWatchers(gb:GenericBinding, index:int, watchers:Array, parentWatcher:WatcherBase):void
         {
+            var foundWatcher:Boolean = false;
+            
             var n:int = watchers.length;
             for (var i:int = 0; i < n; i++)
             {
@@ -243,6 +245,7 @@ package org.apache.flex.binding
                                 parentWatcher.addChild(pw);
                             if (watcher.children == null)
                                 pw.addBinding(gb);
+                            foundWatcher = true;
                             break;
                         }
                     }
@@ -252,6 +255,12 @@ package org.apache.flex.binding
                     }
                 }
             }
+            if (!foundWatcher && parentWatcher == null)
+            {
+                // might be a binding to a function that doesn't have change events
+                // so just force an update
+                gb.valueChanged(null);
+            }
         }
         
         private function decodeWatcher(bindingData:Array):Object

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/38d40b6b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
index 42c5178..106fe10 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ContainerDataBinding.as
@@ -260,6 +260,8 @@ package org.apache.flex.binding
         
         private function setupWatchers(gb:GenericBinding, index:int, watchers:Array, parentWatcher:WatcherBase):void
         {
+            var foundWatcher:Boolean = false;
+            
             var n:int = watchers.length;
             for (var i:int = 0; i < n; i++)
             {
@@ -289,6 +291,7 @@ package org.apache.flex.binding
                                 parentWatcher.addChild(pw);
                             if (watcher.children == null)
                                 pw.addBinding(gb);
+                            foundWatcher = true;
                             break;
                         }
                     }
@@ -298,6 +301,12 @@ package org.apache.flex.binding
                     }
                 }
             }
+            if (!foundWatcher && parentWatcher == null)
+            {
+                // might be a binding to a function that doesn't have change events
+                // so just force an update
+                gb.valueChanged(null);
+            }
         }
         
         private function decodeWatcher(bindingData:Array):Object

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/38d40b6b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
index 5d35cea..803ce56 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewBaseDataBinding.as
@@ -209,6 +209,8 @@ package org.apache.flex.binding
         
         private function setupWatchers(gb:GenericBinding, index:int, watchers:Array, parentWatcher:WatcherBase):void
         {
+            var foundWatcher:Boolean = false;
+            
             var n:int = watchers.length;
             for (var i:int = 0; i < n; i++)
             {
@@ -238,6 +240,7 @@ package org.apache.flex.binding
                                 parentWatcher.addChild(pw);
                             if (watcher.children == null)
                                 pw.addBinding(gb);
+                            foundWatcher = true;
                             break;
                         }
                     }
@@ -247,6 +250,12 @@ package org.apache.flex.binding
                     }
                 }
             }
+            if (!foundWatcher && parentWatcher == null)
+            {
+                // might be a binding to a function that doesn't have change events
+                // so just force an update
+                gb.valueChanged(null);
+            }
         }
         
         private function decodeWatcher(bindingData:Array):Object

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/38d40b6b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewBaseDataBinding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewBaseDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewBaseDataBinding.as
index 88c580a..6bfd5a2 100644
--- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewBaseDataBinding.as
+++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewBaseDataBinding.as
@@ -208,6 +208,8 @@ package org.apache.flex.binding
         
         private function setupWatchers(gb:GenericBinding, index:int, watchers:Array, parentWatcher:WatcherBase):void
         {
+            var foundWatcher:Boolean = false;
+            
             var n:int = watchers.length;
             for (var i:int = 0; i < n; i++)
             {
@@ -237,6 +239,7 @@ package org.apache.flex.binding
                                 parentWatcher.addChild(pw);
                             if (watcher.children == null)
                                 pw.addBinding(gb);
+                            foundWatcher = true;
                             break;
                         }
                     }
@@ -246,6 +249,12 @@ package org.apache.flex.binding
                     }
                 }
             }
+            if (!foundWatcher && parentWatcher == null)
+            {
+                // might be a binding to a function that doesn't have change events
+                // so just force an update
+                gb.valueChanged(null);
+            }
         }
         
         private function decodeWatcher(bindingData:Array):Object