Greg, Good news. I was able to build framework using ant and produce IDE artifacts. Tested your changes and looks good. However I see other issue. I have following code [1]. When I click on link in navigation (I'm listening on change event) - I'm trying to change view using ApplicationMainContent - it's navigates me to new website with new url instead changing view.
I need to investigate why it is happen. Apart of that I believe we are ok with that branch. [1] https://paste.apache.org/UzJI Thanks, Piotr pt., 21 gru 2018 o 09:29 Greg Dove <[email protected]> napisał(a): > Ok Piotr, I'm not sure what is happening there. It does seem strange - > shell.view.royale.Shell seems like a class and somehow has org > <http://shell.view.royale.shell.org/>.apache.royale.jewel.Application > appended to it. > > I don't think that is related to anything I did (and it works fine against > the 'real-world' app I tested against - with maven build). Can you build > Tour de Jewel ok? > > > > > > On Fri, Dec 21, 2018 at 9:04 PM Piotr Zarzycki <[email protected]> > wrote: > > > Hi Greg, > > > > Thanks for your changes. Unfortunately I'm not able so far properly build > > my real world app using Maven. I build Jewel module by Maven, so I have > > setup my app to be buildable with Maven. Unfortunately I'm getting weird > > exception during running app. > > > > SimpleCSSValuesImpl.js:102 Uncaught TypeError: Cannot read property > > 'string' of undefined > > at > > > > > org.apache.royale.core.AllCSSValuesImpl.org.apache.royale.core.SimpleCSSValuesImpl.init > > (SimpleCSSValuesImpl.js:102) > > at > > shell.view.royale.Shell.org > > .apache.royale.jewel.Application.set__valuesImpl > > (Application.js:311) > > at shell.view.royale.Shell.org.apache.royale.jewel.Application [as > > constructor] (Application.js:46) > > at Function.childCtor.base (base.js:2515) > > > > Above exception is not occurs when I'm building using Nightly. I probably > > will have to build framework by ant and prepare IDE compatible > environment > > or will try to rebuild whole framework by Maven and try again. > > > > Thanks, Piotr > > > > czw., 20 gru 2018 o 10:49 Piotr Zarzycki <[email protected]> > > napisał(a): > > > > > 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>* > > > > > > > > > -- > > > > Piotr Zarzycki > > > > Patreon: *https://www.patreon.com/piotrzarzycki > > <https://www.patreon.com/piotrzarzycki>* > > > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*
