fix deferred bindings
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8d72cc2c Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8d72cc2c Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8d72cc2c Branch: refs/heads/develop Commit: 8d72cc2c86136b53b0f26e075cdc45b99f097649 Parents: 49bb73e Author: Alex Harui <[email protected]> Authored: Sun Jul 24 16:39:52 2016 -0700 Committer: Alex Harui <[email protected]> Committed: Sun Jul 24 16:39:52 2016 -0700 ---------------------------------------------------------------------- .../flex/binding/ApplicationDataBinding.as | 20 +++++++++++++++++--- .../apache/flex/binding/ContainerDataBinding.as | 20 +++++++++++++++++--- .../flex/binding/MXMLBeadViewDataBinding.as | 20 +++++++++++++++++--- .../org/apache/flex/binding/ViewDataBinding.as | 16 +++++++++++++++- 4 files changed, 66 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8d72cc2c/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 1838cfd..2974ea5 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 @@ -336,9 +336,23 @@ package org.apache.flex.binding { if (_strand[p] != null) { - var destination:IStrand = _strand[p] as IStrand; - destination.addBead(deferredBindings[p]); - delete deferredBindings[p]; + var destination:IStrand = _strand[p] as IStrand; + if (destination) + destination.addBead(deferredBindings[p]); + else + { + var destObject:Object = _strand[p]; + if (destObject) + { + deferredBindings[p].destination = destObject; + _strand.addBead(deferredBindings[p]); + } + else + { + trace("unexpected condition in deferredBindingsHandler"); + } + } + delete deferredBindings[p]; } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8d72cc2c/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 16eca41..751f235 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 @@ -382,9 +382,23 @@ package org.apache.flex.binding { if (_strand[p] != null) { - var destination:IStrand = _strand[p] as IStrand; - destination.addBead(deferredBindings[p]); - delete deferredBindings[p]; + var destination:IStrand = _strand[p] as IStrand; + if (destination) + destination.addBead(deferredBindings[p]); + else + { + var destObject:Object = _strand[p]; + if (destObject) + { + deferredBindings[p].destination = destObject; + _strand.addBead(deferredBindings[p]); + } + else + { + trace("unexpected condition in deferredBindingsHandler"); + } + } + delete deferredBindings[p]; } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8d72cc2c/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as index 7fa00d1..7ec1dac 100644 --- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as +++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/MXMLBeadViewDataBinding.as @@ -331,9 +331,23 @@ package org.apache.flex.binding { if (_strand[p] != null) { - var destination:IStrand = _strand[p] as IStrand; - destination.addBead(deferredBindings[p]); - delete deferredBindings[p]; + var destination:IStrand = _strand[p] as IStrand; + if (destination) + destination.addBead(deferredBindings[p]); + else + { + var destObject:Object = _strand[p]; + if (destObject) + { + deferredBindings[p].destination = destObject; + _strand.addBead(deferredBindings[p]); + } + else + { + trace("unexpected condition in deferredBindingsHandler"); + } + } + delete deferredBindings[p]; } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8d72cc2c/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as index cad8beb..ac2cbdf 100644 --- a/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as +++ b/frameworks/projects/Binding/src/main/flex/org/apache/flex/binding/ViewDataBinding.as @@ -331,7 +331,21 @@ package org.apache.flex.binding if (_strand[p] != null) { var destination:IStrand = _strand[p] as IStrand; - destination.addBead(deferredBindings[p]); + if (destination) + destination.addBead(deferredBindings[p]); + else + { + var destObject:Object = _strand[p]; + if (destObject) + { + deferredBindings[p].destination = destObject; + _strand.addBead(deferredBindings[p]); + } + else + { + trace("unexpected condition in deferredBindingsHandler"); + } + } delete deferredBindings[p]; } }
