Hi Greg, Great news, cause I was going to look into that somewhere between Christmas and New Year. I would be happy to test your changes! Do not hesitate push it!
Thank you so much! Piotr czw., 20 gru 2018 o 10:39 Greg Dove <[email protected]> napisał(a): > Piotr, Alex, > > fyi I found some time to spend on this today, and Piotr, I should be ready > to push the changes I made to your branch tomorrow morning my time (local > time - GMT+13). > It seems to be fine so far with 'selectionChange' for binding based on > model changes and 'change' for class event meta. I have been been testing > so far against Tour de Jewel, but I will test against our real-world > project as well before I push to your branch Piotr. > > -Greg > > > > > On Wed, Dec 19, 2018 at 7:45 AM Greg Dove <[email protected]> wrote: > > > Alex, I can't remember offhand, but I think we used that once in only one > > place, and I did it really quickly. I am sure there will be a way to > avoid > > it. > > I think the bigger issue is the way I did the changes to the model to > > support dispatching change events for programmatic changes, which I think > > Piotr was looking at. > > Maybe I can take a look at that later today, but I can't be certain. > > The simplest fix might be to revert everything I did and add binding for > > the selection changes (currently 'selectedIndexChanged' and > > 'selectedItemChanged' which I know you say could be 'selectionChanged') > in > > addition to 'change' (as discussed) and make sure the component is > > dispatching those from the model (if it does not already do so). If > > 'selectionChanged' (or whatever it is) is already happening as a result > of > > 'change' in addition to setter triggered changes, then it could be a > simple > > swap for the binding event only (as discussed also) > > > > But this last part was also applicable to the wholesale change to all > > component sets we were discussing, not just Jewel. > > > > > > > > > > On Wed, Dec 19, 2018 at 7:17 AM Alex Harui <[email protected]> > > wrote: > > > >> Greg, Carlos, > >> > >> Can one of you put together a simple test case that demonstrates your > >> need for this "OnStartup" bead? It doesn't need server access. You can > >> probably inject a dataProvider on applicationComplete or have the user > push > >> a button if the issue is about deferred arrival of server data. > >> > >> IMO, we have to be more concerned about getting the patterns right > >> regressions, and the best way to avoid getting regressions is to > provide a > >> simple test case that demonstrates a problem in the patterns. > >> > >> Hopefully, "OnStartup" beads are not going to be required and won't be > >> part of the framework. The usability of the framework will go down if > >> folks have to keep adding more and more "OnThis" and "OnThat" beads to > get > >> their app to work. The approachability of the framework in terms of > >> documentation and number of classes won't scale either if we don't get > >> these patterns right. This doesn't mean that you can't use an > "onStartup" > >> bead in your app in order to meet some deadline, and share it with > others, > >> but we have to be careful about what patterns we promote in the SDK. > >> > >> My 2 cents, > >> -Alex > >> > >> On 12/18/18, 12:17 AM, "Greg Dove" <[email protected]> wrote: > >> > >> Hi Piotr, > >> > >> I would be happy to work on it, and wish I could, but the problem > for > >> me at > >> the moment is that I can't make it a priority, because for now at > >> least it > >> is functioning as we need it, and there are plenty of things that > are > >> not > >> (mostly unrelated to Jewel). While the implementation as it stands > >> might > >> not be 'right', it does function as we need it to for now. I suspect > >> that > >> is what Carlos meant when he said he was concerned about > regressions. > >> > >> I have other stuff queued up to add in other areas too, like > >> AMFBinaryData > >> and AMFNetConnection but will need to do more work to generalize it, > >> as I > >> have it these working in a way that is almost complete, but mostly > >> focused > >> on what is sufficient for what Carlos needs for now. > >> > >> I hope to get some free time in early January to finish up these > >> things. > >> > >> > >> > >> > >> On Tue, Dec 18, 2018 at 11:53 AM Piotr Zarzycki < > >> [email protected]> > >> wrote: > >> > >> > Hi Guys, > >> > > >> > I definitely need to a way of resolve that problem. I will review > >> emails > >> > tomorrow. > >> > > >> > However if you Greg would like to try something go for it. Would > be > >> great > >> > if you could use my branch where changes which removes dispatching > >> "change" > >> > event from model are in place. > >> > > >> > Thanks, Piotr > >> > > >> > pon., 17 gru 2018 o 23:46 Alex Harui <[email protected]> > >> > napisał(a): > >> > > >> > > Hi Greg, > >> > > > >> > > I haven't looked at how pervasive this change would be. I'm > >> mainly > >> > saying > >> > > that Flex worked with these categories of events and I think > >> Royale can > >> > too > >> > > and would eliminate the need for DispatchChangeOnStartup and > >> things like > >> > > that. > >> > > > >> > > You could be right that the models only need to dispatch > >> selectionChange > >> > > and not "change", as long as the controllers are guaranteed to > >> update the > >> > > model in a way that fires selectionChange. I have this feeling > >> that in > >> > > Flex there were some backdoors for updating properties without > >> > dispatching > >> > > events and dispatching the event "later", but I don't think > we've > >> had to > >> > > write such code in Royale and maybe we won't have to or can't > >> because the > >> > > browser will update right away in many cases. There were > >> somethings you > >> > > could do in Flash knowing that all rendering was deferred to > frame > >> > > updates. In Royale, with separate models, the controller code > >> can't just > >> > > set the backing variable. > >> > > > >> > > So, if you want to give it a try having only selectionChange as > >> the > >> > > bindable event, go for it. > >> > > > >> > > -Alex > >> > > > >> > > On 12/17/18, 12:35 PM, "Greg Dove" <[email protected]> wrote: > >> > > > >> > > Thanks Alex. > >> > > > >> > > I only looked in Basic TextInput because I was looking for a > >> simpler > >> > > example of the general case being discussed. That code looks > >> like it > >> > > might > >> > > need some work on the swf side in any case. > >> > > I was just looking for the 'programmaticChange' vs > >> > > 'userInitiatedChange' > >> > > differences. > >> > > > >> > > Based on a quick look at the other Basic classes, the > >> conclusions > >> > > appear > >> > > similar. They are bindable via 'change' only. > >> > > And the models all dispatch both selectedIndexChanged and > >> > > selectedItemChanged. > >> > > > >> > > So it seems like you are proposing broad changes for > >> everything, if > >> > > they > >> > > are to also support binding changes for programmatic > changes? > >> > > > >> > > For me, the change in something (or nothing) being > 'selected' > >> > logically > >> > > occurs as a result of either user change or programmatic > >> change. On > >> > > that > >> > > basis would it be possible to have the selectionChange as > the > >> sole > >> > > Binding > >> > > event (which occurs from setter induced change and from user > >> induced > >> > > change) and the 'change' event as user-interaction only as > >> the class > >> > > level > >> > > event type (as it is now)? > >> > > > >> > > I have not thought about this as much as you (Alex and > >> others) have, > >> > so > >> > > maybe that last suggestion does not make sense. But I really > >> think > >> > > that for > >> > > whatever does make sense it would be great to settle on > >> something and > >> > > get > >> > > it consistent for all components asap. > >> > > > >> > > > >> > > > >> > > > >> > > On Tue, Dec 18, 2018 at 8:43 AM Alex Harui > >> <[email protected] > >> > > > >> > > wrote: > >> > > > >> > > > Hi Greg, > >> > > > > >> > > > You are correct that there is a pain point around binding > >> overhead > >> > > and > >> > > > PAYG. I can't think of a PAYG way of adding the ability > to > >> add > >> > more > >> > > > binding events via beads that doesn't have too much > >> overhead for > >> > > folks not > >> > > > interested in those extra events. Actually, there are > some > >> ways > >> > > that are > >> > > > JS-only like replacing prototype-methods, but I don't > think > >> we > >> > > should rely > >> > > > on mutable class definitions. In many cases we make > >> trade-offs > >> > and > >> > > Basic > >> > > > ends up being what we think almost all folks "must have". > >> > > > > >> > > > When we first started out I was hoping to reduce binding > >> overhead > >> > > which is > >> > > > why some of the beads look like they do, but these days I > >> think it > >> > > is more > >> > > > important to separate interactive events from > binding/setup > >> events. > >> > > Folks > >> > > > who don't use a particular binding event can always > replace > >> the > >> > > model and > >> > > > top-level component with a version without events they are > >> not > >> > > interested > >> > > > in, or in the JS output, run a post-process to cull out > >> metadata. > >> > > But > >> > > > under the "almost all folks" rule, I think "almost all > >> folks" don't > >> > > want to > >> > > > run interaction handling code at setup time. Especially > if > >> that > >> > > handling > >> > > > code runs any sort of animation or does any other heavy > >> processing. > >> > > > > >> > > > I could be wrong, but I'm pretty sure that if you just > take > >> a > >> > > <select> > >> > > > element, you can set its initial selection value without > it > >> > > dispatching an > >> > > > event called "change". Then when a user selects an item > >> you get a > >> > > "change" > >> > > > event. IMO, this is why "change" should be an interactive > >> event > >> > and > >> > > not a > >> > > > binding event. > >> > > > > >> > > > So these are the reasons I think we should adjust the > basic > >> beads > >> > to > >> > > > separate interactive events from setup events and why > >> "change" is > >> > an > >> > > > interactive event. > >> > > > > >> > > > Now, we could renew the effort to make Basic the truly > >> smallest > >> > > > implementation and move some of this logic to Express, but > >> I keep > >> > > seeing > >> > > > code creep into Basic to handle situations that almost all > >> folks > >> > > need. > >> > > > > >> > > > TextInput, on the other hand, has been an exception of > >> sorts in > >> > > Flex. The > >> > > > Flash/AIR runtime dispatches "change" on certain kinds of > >> changes. > >> > > So > >> > > > early implementations in Royale tried to mimic that > >> behavior for > >> > > folks > >> > > > coming from Flex. But maybe we should change that and > make > >> Basic > >> > > TextInput > >> > > > more consistent with browser behavior. The emulation > >> components > >> > can > >> > > mimic > >> > > > the old Flex behavior. So I think using TextInput as > >> precedent is > >> > > > misleading. > >> > > > > >> > > > Thoughts? > >> > > > -Alex > >> > > > > >> > > > On 12/17/18, 10:55 AM, "Greg Dove" <[email protected]> > >> wrote: > >> > > > > >> > > > Alex, I was giving this some more thought also. I > >> understood > >> > > that you > >> > > > meant > >> > > > to add extra events for binding from your previous > >> comments. > >> > > > > >> > > > But isn't the established pattern to add a bead to > >> listen for > >> > the > >> > > > selectionChange and redispatch it as change? > >> > > > > >> > > > At least that seems to be the case elsewhere > >> > > > > >> > > > If I look at the code in Basic TextInput... > >> > > > it dispatches 'textChange' and 'change' but is only > >> Bindable > >> > via > >> > > > 'change'. > >> > > > There is effort to keep them distinct/separate. > >> > > > (OT: It looks like the swf side needs some consistency > >> in the > >> > > html > >> > > > setter > >> > > > same as the text setter.) > >> > > > > >> > > > So TextInput appears to have 2 distinct events but > only > >> be > >> > > Bindable > >> > > > for one > >> > > > ('change'). So I presume that to make that support > >> programmatic > >> > > > changes it > >> > > > would be by adding a bead to listen to the > 'textChange' > >> and > >> > > redispatch > >> > > > as > >> > > > 'change' ? > >> > > > > >> > > > Adding extra Bindable events adds weight because it > >> affects > >> > > binding > >> > > > data, > >> > > > and creates more runtime support for the same feature > >> in use > >> > > cases > >> > > > that may > >> > > > not need it. I don't see how that can be 'PAYG-ised' > >> because > >> > > binding > >> > > > support for different event types is either there at > >> compile > >> > > time or > >> > > > it is > >> > > > not in the component. So if the above is true for > >> TextInput (at > >> > > this > >> > > > stage > >> > > > it's a guess/observation, I did not try this yet), > then > >> could > >> > it > >> > > not be > >> > > > similar for selection based components? > >> > > > > >> > > > To me 'change' seems like something generic and does > >> not sound > >> > > > specific to > >> > > > being user-initiated change. My understanding is that > >> it just > >> > > happens > >> > > > to be > >> > > > that way by default, unless you configure it to > include > >> > > programmatic > >> > > > changes via bead. > >> > > > If it is like this for Basic TextInput, why can it not > >> be the > >> > > same for > >> > > > other components ? ( > >> > > > > >> > > > > >> > > > > >> > > > On Tue, Dec 18, 2018 at 7:32 AM Alex Harui > >> > > <[email protected]> > >> > > > wrote: > >> > > > > >> > > > > I took a quick look at ArrayListSelection. It could > >> use some > >> > > > > improvements, such as only dispatching a single > >> > > selectionChange event > >> > > > > instead of both selectedIndexChange and > >> selectedItemChange. > >> > > > > > >> > > > > Some controller should dispatch the "change" event, > >> not the > >> > > model. > >> > > > > > >> > > > > I took a quick look at List.as, (a top level > >> component). It > >> > > should > >> > > > have > >> > > > > bindable metadata that looks like this: > >> > > > > > >> > > > > [Bindable("change")] > >> > > > > [Bindable("selectionChange")] > >> > > > > public function get selectedIndex():int > >> > > > > > >> > > > > Similar for selectedItem. The [Event] metadata for > >> List is > >> > > > correct, It > >> > > > > should only list interactive events like "change" > and > >> not > >> > > bindable > >> > > > events > >> > > > > like selectionChange. This usually improves > >> performance by > >> > not > >> > > > having the > >> > > > > UI react to setup. > >> > > > > > >> > > > > Once all of those changes are made, we should > discuss > >> any > >> > > remaining > >> > > > issues. > >> > > > > > >> > > > > My 2 cents, > >> > > > > -Alex > >> > > > > > >> > > > > On 12/17/18, 10:14 AM, "Piotr Zarzycki" < > >> > > [email protected]> > >> > > > > wrote: > >> > > > > > >> > > > > Basic ArrayListSelection model doesn't dispatch > >> that > >> > > event. I > >> > > > believe > >> > > > > we > >> > > > > don't have to do this or rather do this only if > >> we really > >> > > need > >> > > > it, for > >> > > > > example if someone make programatic change of > >> > > selectedIndex. - > >> > > > This is > >> > > > > general problem how to do that ? > >> > > > > > >> > > > > If I change selectedIndex - my model dispatch > >> > > > selectedInexChanged - > >> > > > > where > >> > > > > should I catch it and dispatch "change" event ? > >> My though > >> > > are > >> > > > nowhere, > >> > > > > unless someone wanted to do that and have a > bead. > >> > > > > > >> > > > > > >> > > > > pon., 17 gru 2018 o 19:08 Alex Harui > >> > > <[email protected]> > >> > > > > napisał(a): > >> > > > > > >> > > > > > Hi Piotr, > >> > > > > > > >> > > > > > I may not be understanding your problem. Not > >> all > >> > models > >> > > will > >> > > > > dispatch a > >> > > > > > change event, but it is hard to imagine a > >> selection > >> > > model that > >> > > > > doesn't. > >> > > > > > > >> > > > > > -Alex > >> > > > > > > >> > > > > > On 12/17/18, 9:36 AM, "Piotr Zarzycki" < > >> > > > [email protected]> > >> > > > > wrote: > >> > > > > > > >> > > > > > I will review your email again and see > what > >> can I > >> > do > >> > > this. > >> > > > > However > >> > > > > > this one > >> > > > > > is a second problem. First one was about > >> > programmatic > >> > > > change > >> > > > > discover > >> > > > > > - If > >> > > > > > you are talking about that - Let me check > >> your > >> > > earlier > >> > > > emails. > >> > > > > > > >> > > > > > Thanks, > >> > > > > > Piotr > >> > > > > > > >> > > > > > pon., 17 gru 2018 o 18:30 Alex Harui > >> > > > <[email protected]> > >> > > > > > napisał(a): > >> > > > > > > >> > > > > > > FWIW, I would much rather see energy > >> spent on > >> > > trying to > >> > > > > implement the > >> > > > > > > patterns I suggested earlier, which will > >> > hopefully > >> > > > eliminate > >> > > > > the > >> > > > > > need for > >> > > > > > > DispatchChangeOnStartup. > >> > > > > > > > >> > > > > > > My 2 cents, > >> > > > > > > -Alex > >> > > > > > > > >> > > > > > > On 12/17/18, 4:34 AM, "Piotr Zarzycki" < > >> > > > > [email protected]> > >> > > > > > wrote: > >> > > > > > > > >> > > > > > > Carlos, > >> > > > > > > > >> > > > > > > I don't understand this sentence -> > " > >> If not > >> > > we can > >> > > > get > >> > > > > involved > >> > > > > > in > >> > > > > > > pursues > >> > > > > > > problems > >> > > > > > > that are not real." - What do you > >> mean here ? > >> > > > > > > > >> > > > > > > Ok I can wait for Alex review. > >> > > > > > > > >> > > > > > > However your review and look into > >> above > >> > problem > >> > > > doesn't > >> > > > > need > >> > > > > > Alex's > >> > > > > > > attention. This bead > >> > (DispatchChangeOnStartup) > >> > > > probably > >> > > > > won't > >> > > > > > work > >> > > > > > > doesn't > >> > > > > > > matter if we fix programmatic change > >> or not. > >> > - > >> > > > Unless I > >> > > > > bring > >> > > > > > back > >> > > > > > > dispatching "change" event from > model > >> - which > >> > > rather > >> > > > is not > >> > > > > > > recommended in > >> > > > > > > previous discussion. > >> > > > > > > > >> > > > > > > Thanks, Piotr > >> > > > > > > > >> > > > > > > pon., 17 gru 2018 o 13:14 Carlos > >> Rovira < > >> > > > > [email protected] > >> > > > > > > > >> > > > > > > napisał(a): > >> > > > > > > > >> > > > > > > > Hi Piotr, > >> > > > > > > > > >> > > > > > > > I think we should solve first the > >> > programatic > >> > > > change so > >> > > > > I can > >> > > > > > test > >> > > > > > > the > >> > > > > > > > branch and see regressions. If not > >> we can > >> > get > >> > > > involved in > >> > > > > > pursues > >> > > > > > > problems > >> > > > > > > > that are not real. I think Alex > >> missed this > >> > > > discussion. > >> > > > > I'll > >> > > > > > point > >> > > > > > > him in > >> > > > > > > > this thread to see if he can give > >> his > >> > opinion > >> > > > about the > >> > > > > ways > >> > > > > > you > >> > > > > > > proposed > >> > > > > > > > in the initial thread email. > >> > > > > > > > > >> > > > > > > > Thanks! > >> > > > > > > > > >> > > > > > > > El lun., 17 dic. 2018 a las 10:57, > >> Piotr > >> > > Zarzycki > >> > > > (< > >> > > > > > > > [email protected]>) > >> escribió: > >> > > > > > > > > >> > > > > > > > > Hi Carlos, > >> > > > > > > > > > >> > > > > > > > > I just noticed that if model do > >> not > >> > > dispatch > >> > > > change > >> > > > > event - > >> > > > > > your > >> > > > > > > bead > >> > > > > > > > > DispatchChangeOnStartup won't > work > >> > because > >> > > it > >> > > > simply > >> > > > > based on > >> > > > > > > dispatching > >> > > > > > > > > "change" event trough model. > >> > > > > > > > > > >> > > > > > > > > I'm wondering whether it won't > be > >> enough > >> > > if that > >> > > > bead > >> > > > > listen > >> > > > > > for > >> > > > > > > > > "beadsAdded" (here I think it > >> should be > >> > > > registered for > >> > > > > > > "initComplete" > >> > > > > > > > > instead) and dispatch change > >> event once. > >> > I > >> > > made > >> > > > the > >> > > > > changes > >> > > > > > to > >> > > > > > > that bead, > >> > > > > > > > > but I don't have scenario which > >> you are > >> > > using it. > >> > > > > > > > > > >> > > > > > > > > Will you be able to test my > >> changes on > >> > > your > >> > > > > application end > >> > > > > > using > >> > > > > > > my > >> > > > > > > > > branch ? Above changes are not > >> fully > >> > > related to > >> > > > what > >> > > > > we are > >> > > > > > > discussing > >> > > > > > > > > here, so programmatic change > >> still won't > >> > > work > >> > > > yet. > >> > > > > Please > >> > > > > > review > >> > > > > > > those > >> > > > > > > > > changes as well [1] > >> > > > > > > > > > >> > > > > > > > > Those new changes are just to > >> check > >> > > whether I > >> > > > won't > >> > > > > break > >> > > > > > any of > >> > > > > > > your > >> > > > > > > > > functionality on startup. I will > >> move for > >> > > > creating > >> > > > > bead for > >> > > > > > > discovering > >> > > > > > > > > programmatic changes, but first > >> would > >> > like > >> > > to > >> > > > know > >> > > > > whether > >> > > > > > till now > >> > > > > > > > > everything is working fine. > >> > > > > > > > > > >> > > > > > > > > [1] > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fcommit%2F14f6354e037e5854900ef5620581f6914bd604c4&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284003207&sdata=ceIkx4wphA1rgpPQ1yLQEIac6MJ4HSwKxIS7nmbC3Gg%3D&reserved=0 > >> > > > > > > > > > >> > > > > > > > > Thanks, Piotr > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > pt., 14 gru 2018 o 19:55 Carlos > >> Rovira < > >> > > > > > [email protected]> > >> > > > > > > > > napisał(a): > >> > > > > > > > > > >> > > > > > > > > > Hi Piotr, > >> > > > > > > > > > > >> > > > > > > > > > after check example code, we > >> have: > >> > > > > > > > > > > >> > > > > > > > > > <j:ComboBox > >> id="watchmenComboBox" > >> > > > > > > dataProvider="{listModel.watchmen}"> > >> > > > > > > > > > > ... > >> > > > > > > > > > then NS: > >> > > > > > > > > > > >> > > > > > > > > > <j:NumericStepper > >> > > > > > valueChange="watchmenComboBox.selectedIndex = > >> > > > > > > > > > event.target.value" > minimum="0" > >> > > maximum="5"/> > >> > > > > > > > > > > >> > > > > > > > > > and finally > >> > > > > > > > > > > >> > > > > > > > > > <j:Label > >> id="watchmenComboBoxResult" > >> > > html= > >> > > > > > > > > > > >> > > > "{describeItem(watchmenComboBox.selectedItem)}"/> > >> > > > > > > > > > > >> > > > > > > > > > I think right now works as > >> expected, > >> > > since the > >> > > > > change is > >> > > > > > > programatic > >> > > > > > > > (is > >> > > > > > > > > > not the user clicking in the > >> combo list > >> > > and > >> > > > selecting > >> > > > > > other item > >> > > > > > > > > > > >> > > > > > > > > > So I think a bead should be > >> better in > >> > > this > >> > > > case, that > >> > > > > > takes care > >> > > > > > > of > >> > > > > > > > this > >> > > > > > > > > > behavior. > >> > > > > > > > > > > >> > > > > > > > > > I'm interested in Alex > response > >> about > >> > > how to > >> > > > handle > >> > > > > it > >> > > > > > > > > > > >> > > > > > > > > > Thanks Piotr for working on > this > >> > > > > > > > > > > >> > > > > > > > > > Carlos > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > El vie., 14 dic. 2018 a las > >> 17:02, > >> > Piotr > >> > > > Zarzycki (< > >> > > > > > > > > > [email protected]>) > >> escribió: > >> > > > > > > > > > > >> > > > > > > > > > > Hi Carlos, > >> > > > > > > > > > > > >> > > > > > > > > > > I have created issue [1] and > >> branch > >> > > [2] for > >> > > > > problem with > >> > > > > > double > >> > > > > > > > > dispatch > >> > > > > > > > > > > "change" event. > >> > > > > > > > > > > I have pushed changes when > I'm > >> > > removing from > >> > > > > > > ArrayListSelectionModel > >> > > > > > > > > > > dispatch of change event. > >> > > > > > > > > > > > >> > > > > > > > > > > Above action successfully > fix > >> however > >> > > like I > >> > > > > thought it's > >> > > > > > > introduces > >> > > > > > > > > > > another one which I would > >> like to > >> > > discuss > >> > > > how to > >> > > > > fix. I > >> > > > > > have > >> > > > > > > deployed > >> > > > > > > > > > > temporary Tour De Jewel here > >> [3] in > >> > > order to > >> > > > show > >> > > > > you > >> > > > > > and to > >> > > > > > > others > >> > > > > > > > > that > >> > > > > > > > > > > issue. > >> > > > > > > > > > > > >> > > > > > > > > > > *New Issue:* > >> > > > > > > > > > > When you go to ComboBox and > >> try to > >> > > change > >> > > > > selectedIndex > >> > > > > > using > >> > > > > > > > > > > NumericStepper it will > >> successfully > >> > > change > >> > > > > selectedItem > >> > > > > > in > >> > > > > > > ComboBox. > >> > > > > > > > > > > Unfortunately label on the > >> right > >> > sight > >> > > of > >> > > > ComboBox > >> > > > > won't > >> > > > > > be > >> > > > > > > updated. > >> > > > > > > > > > > > >> > > > > > > > > > > *Question is:* > >> > > > > > > > > > > How should be implemented > >> discover of > >> > > > programmatic > >> > > > > > change of > >> > > > > > > > > > selectedIndex > >> > > > > > > > > > > and selectedItem ? > >> > > > > > > > > > > > >> > > > > > > > > > > *I see following options:* > >> > > > > > > > > > > 1) We should listen on > events > >> > > > > > > > > >> selectedIndexChanged/selectedItemChanged > >> > > > > > > > > > and > >> > > > > > > > > > > dispatch "change" from > >> components > >> > View > >> > > bead. > >> > > > In > >> > > > > this way > >> > > > > > we > >> > > > > > > have to > >> > > > > > > > > take > >> > > > > > > > > > > into account places where > >> "we" as a > >> > > component > >> > > > > setup those > >> > > > > > > properties > >> > > > > > > > > > > internally - In that case > >> > > > "selectedIndexChanged" > >> > > > > and > >> > > > > > > > > > "selectedItemChanged" > >> > > > > > > > > > > event shouldn't be dispatch. > >> > > > > > > > > > > > >> > > > > > > > > > > 2) Create separate bead > which > >> allows > >> > > discover > >> > > > > > programmatic > >> > > > > > > change of > >> > > > > > > > > > > selectedIndex and > >> selectedItem- cause > >> > > not > >> > > > everyone > >> > > > > > wanted to > >> > > > > > > have at > >> > > > > > > > > all > >> > > > > > > > > > > programmatic change event in > >> the > >> > > component - > >> > > > > probably > >> > > > > > most of > >> > > > > > > the > >> > > > > > > > cases > >> > > > > > > > > > > will be opposite. > >> > > > > > > > > > > > >> > > > > > > > > > > What others think about > that ? > >> > > > > > > > > > > > >> > > > > > > > > > > [1] > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Fissues%2F353&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=i2ZNUl1KvL60iqlZt888Q0aowpNvTaVnyQqgFGAvCVs%3D&reserved=0 > >> > > > > > > > > > > [2] > >> > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Froyale-asjs%2Ftree%2Fbugfix%2Fissue_353_double_dispatch_of_change_event_in_Jewel_List&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=%2BewtJrgepDQvKgQxx4MtI3tpyoedNnwsjPFtmnfzY2A%3D&reserved=0 > >> > > > > > > > > > > [3] > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftranspiledactionscript.com%2Fdev%2Froyale%2F%23&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=uCD2RJp2iFdW9%2BHjScGeJKaR87qaAT6%2FUDvAgOYAk5Y%3D&reserved=0 > >> > > > > > > > > > > > >> > > > > > > > > > > Thanks, > >> > > > > > > > > > > -- > >> > > > > > > > > > > > >> > > > > > > > > > > Piotr Zarzycki > >> > > > > > > > > > > > >> > > > > > > > > > > Patreon: * > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=%2BYYs6ucuVcxDBnsY%2BjPWNAhKsLBVTYWQLbIO%2F6iaze0%3D&reserved=0 > >> > > > > > > > > > > < > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=%2BYYs6ucuVcxDBnsY%2BjPWNAhKsLBVTYWQLbIO%2F6iaze0%3D&reserved=0 > >> > > > > > > >* > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > -- > >> > > > > > > > > > Carlos Rovira > >> > > > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=J1FV%2B%2B98n8X%2B63fllpZNMqVxwGiWKMZxcVmVWiQQq8w%3D&reserved=0 > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > -- > >> > > > > > > > > > >> > > > > > > > > Piotr Zarzycki > >> > > > > > > > > > >> > > > > > > > > Patreon: * > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=%2BYYs6ucuVcxDBnsY%2BjPWNAhKsLBVTYWQLbIO%2F6iaze0%3D&reserved=0 > >> > > > > > > > > < > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=%2BYYs6ucuVcxDBnsY%2BjPWNAhKsLBVTYWQLbIO%2F6iaze0%3D&reserved=0 > >> > > > > > > >* > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > -- > >> > > > > > > > Carlos Rovira > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fabout.me%2Fcarlosrovira&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284013217&sdata=J1FV%2B%2B98n8X%2B63fllpZNMqVxwGiWKMZxcVmVWiQQq8w%3D&reserved=0 > >> > > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > -- > >> > > > > > > > >> > > > > > > Piotr Zarzycki > >> > > > > > > > >> > > > > > > Patreon: * > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > > > < > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > > > >* > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > -- > >> > > > > > > >> > > > > > Piotr Zarzycki > >> > > > > > > >> > > > > > Patreon: * > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > > < > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > > >* > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > -- > >> > > > > > >> > > > > Piotr Zarzycki > >> > > > > > >> > > > > Patreon: * > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > < > >> > > > > > >> > > > > >> > > > >> > > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > > > > >* > >> > > > > > >> > > > > > >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > >> > > > >> > > > >> > > >> > -- > >> > > >> > Piotr Zarzycki > >> > > >> > Patreon: * > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> > < > >> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.patreon.com%2Fpiotrzarzycki&data=02%7C01%7Caharui%40adobe.com%7Ca945ffe445614a538d4d08d664c13319%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%7C0%7C636807178284023226&sdata=mrx6J9BeewcazF%2F6FE8xAZlfCB72VZC15zgvIOP1JEg%3D&reserved=0 > >> >* > >> > > >> > >> > >> > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*
