Greg, In your app are you using navigation in that way? Maybe I need to call some prevent method somewhere.
Thanks, Piotr On Sat, Dec 22, 2018, 9:57 AM Piotr Zarzycki <[email protected]> wrote: > 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%2Fp >> <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> > >
