Yes, in theory.

The key to debugging binding in Royale is: "don't trust anything" __  
The compiler might be generating the wrong code, the widgets may not be 
dispatching change events, and also, Royale evaluates binding expressions only 
once at instantiation time whereas Flex tried at least twice and sometimes 
more, which is the main reason why Flex binding was so slow.

Fundamentally, Binding after instantiation is all about change events.  You can 
speculate all you want, but I think you are better served by learning how to 
debug it.  But first, make sure you can convince yourself that the changes that 
are happening will dispatch change events.  Arrays and Objects and other 
primitives do not dispatch change events.  Once you've convinced yourself of 
that, I recommend setting breakpoints in the debugger.  Below are places to 
look.

The compiler must find your binding and output it in the _bindings array in the 
class that represents the top-tag in your MXML file.
So stop in the debugger and check there.

Then, there must be a Binding implementation bead (ContainerDataBinding or 
similar).  Check the _beads array (which is the strand and not the "beads" 
array which is where you put in custom beads.  Note the leading underscore) to 
make sure the Binding implementation got loaded.

Then, there must be a triggering event that tells the Binding implementation to 
evaluate the _bindings array and set up bindings.

Then, the Binding implementation will generate instances of Bindings 
(SimpleBinding, ConstantBinding, GenericBinding, etc).  These instances replace 
the PropertyWatchers in Flex and end up on strands (the _beads array ) in the 
main class or on the component it is watching.

Those Bindings will evaluate the expression and set up change event listeners 
if needed.

(Now you can see why explicitly putting in Bindings on strands is more 
efficient than the compiler doing it for you from {} expressions)

Once all of that is set up, something has to change and dispatch the right 
change event, which should cause the Binding code to run.

It isn't fun, but it should be straightforward to debug.  In fact, I am about 
to debug one in RemoteObject code.

FWIW, another approach is to actually use Flex to create a similar scenario and 
make sure your bindings work there.  Then when you debug the Royale version you 
might have a better idea of what changes you are looking for.

HTH,
-Alex

On 10/8/18, 1:18 PM, "Carlos Rovira" <carlosrov...@apache.org> wrote:

    Just to be sure: someClass is Bindable at level class, and collectionOfVOs
    is not marked as Bindable since the class already is. I suppose this works
    like in Flex right ? if the Class is Bindable, all members are Bindable
    right?
    
    El lun., 8 oct. 2018 a las 22:15, Carlos Rovira (<carlosrov...@apache.org>)
    escribió:
    
    > Hi,
    >
    > just uploaded a example that works, I mean, it seems the component is ok,
    > but something is making it to fail. What scares me is that I'm doing 
mostly
    > the same but across multiple files and pulling data from AMF. I'll
    > investigate more to see what could be happening
    >
    > thanks for the suggestions.
    >
    > Carlos
    >
    >
    >
    > El lun., 8 oct. 2018 a las 22:08, Carlos Rovira 
(<carlosrov...@apache.org>)
    > escribió:
    >
    >> Hi Piotr,
    >>
    >> Jewel ComboBox uses DataItemRendererFactoryForCollectionView that
    >> implements IDataProviderItemRendererMapper
    >> thanks
    >>
    >> El lun., 8 oct. 2018 a las 21:02, Piotr Zarzycki (<
    >> piotrzarzyck...@gmail.com>) escribió:
    >>
    >>> Hi Carlos,
    >>>
    >>> Maybe your ComboBox have to use IDataProviderItemRendererMapper ? It's
    >>> just
    >>> a shot.
    >>>
    >>> Piotr
    >>>
    >>> On Mon, Oct 8, 2018, 8:24 PM Alex Harui <aha...@adobe.com.invalid>
    >>> wrote:
    >>>
    >>> > How can collectionOfVOs be a Constant when it is being assigned data
    >>> off a
    >>> > network request?
    >>> >
    >>> > -Alex
    >>> >
    >>> > On 10/8/18, 11:19 AM, "Carlos Rovira" <carlosrov...@apache.org>
    >>> wrote:
    >>> >
    >>> >     When I say this is not working, I mean, I have the data right in
    >>> > place, but
    >>> >     the data provider is empty.
    >>> >
    >>> >     El lun., 8 oct. 2018 a las 20:17, Carlos Rovira (<
    >>> > carlosrov...@apache.org>)
    >>> >     escribió:
    >>> >
    >>> >     > Hi,
    >>> >     >
    >>> >     > I'm retrieving a collection of VOs and storing in a class
    >>> >     >
    >>> >     > something like this
    >>> >     >
    >>> >     > someClass.collectionOfVOs = new ArrayList (event.data as Array);
    >>> >     >
    >>> >     > in the screen code I have:
    >>> >     >
    >>> >     > <j:ComboBox selectedIndex="0">
    >>> >     >       <j:beads>
    >>> >     >            <js:ConstantBinding sourceID="someClass"
    >>> >     >
    >>> sourcePropertyName="collectionOfVOs"
    >>> >     >
    >>> > destinationPropertyName="dataProvider"/>
    >>> >     >      </j:beads>
    >>> >     > </j:ComboBox>
    >>> >     >
    >>> >     > or I could have directly
    >>> >     >
    >>> >     > <j:ComboBox dataProvider="{someClass.collectionOfVOs}">
    >>> >     >
    >>> >     > I have setup
    >>> >     >
    >>> >     > <js:ContainerDataBinding/>
    >>> >     >
    >>> >     > But this is not working, I suppose this is due to a complete
    >>> > reassignment
    >>> >     > of the dataProvider.
    >>> >     >
    >>> >     > I think this worked in Flex, if I can recall right.
    >>> >     >
    >>> >     > Can someone post some solution for this or let me know if see
    >>> some
    >>> >     > problems in the way I'm creating this?
    >>> >     > Maybe I'm missing something?
    >>> >     >
    >>> >     > thanks
    >>> >     >
    >>> >     >
    >>> >     > --
    >>> >     > Carlos Rovira
    >>> >     >
    >>> >
    >>> 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C9bb473b06f4c4c530d6408d62d5b2406%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636746266805013360&amp;sdata=ULLedzq7cXhkwZ1QCiRdHxM4RaT2iFy5PFyXztdLrjQ%3D&amp;reserved=0
    >>> >     >
    >>> >     >
    >>> >
    >>> >     --
    >>> >     Carlos Rovira
    >>> >
    >>> >
    >>> 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C9bb473b06f4c4c530d6408d62d5b2406%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636746266805023366&amp;sdata=PE%2BFv2fLtarPvLpmfUCsGZZa2AD3Q0MH220alOTWrl4%3D&amp;reserved=0
    >>> >
    >>> >
    >>> >
    >>>
    >>
    >>
    >> --
    >> Carlos Rovira
    >> 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C9bb473b06f4c4c530d6408d62d5b2406%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636746266805023366&amp;sdata=PE%2BFv2fLtarPvLpmfUCsGZZa2AD3Q0MH220alOTWrl4%3D&amp;reserved=0
    >>
    >>
    >
    > --
    > Carlos Rovira
    > 
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C9bb473b06f4c4c530d6408d62d5b2406%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636746266805023366&amp;sdata=PE%2BFv2fLtarPvLpmfUCsGZZa2AD3Q0MH220alOTWrl4%3D&amp;reserved=0
    >
    >
    
    -- 
    Carlos Rovira
    
https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&amp;data=02%7C01%7Caharui%40adobe.com%7C9bb473b06f4c4c530d6408d62d5b2406%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636746266805023366&amp;sdata=PE%2BFv2fLtarPvLpmfUCsGZZa2AD3Q0MH220alOTWrl4%3D&amp;reserved=0
    

Reply via email to