Hi Piotr, I will send you a link with the code, cheers! I will then post the solution back here when we find it!
David On Wed, 24 Feb 2021 at 17:23, Piotr Zarzycki <[email protected]> wrote: > David, > > You can send me code of your project and I will take a look at it. I don't > see any connection to Moonshine here. We need more data to help you. The > best would be if you could provide source code by uploading on some server > - if you can of course. > > Thanks, > Piotr > > śr., 24 lut 2021 o 17:13 Carlos Rovira <[email protected]> > napisał(a): > >> Hi David, >> >> the two lines refers to 2 injects in UserController. Since I don't know >> the code I guess you have 2 injections there. >> You talk then about a "usuarioController", but I don't know what is. Is >> not UserController? is other controller? then you need to add as well to >> your beanprovider. >> >> About Moonshine, maybe @Piotr Zarzycki <[email protected]> can >> help you I don't have many experience, sorry >> >> >> El mar, 23 feb 2021 a las 15:18, David Slotemaker de Bruine (< >> [email protected]>) escribió: >> >>> Hi Carlos, >>> >>> OK, >>> >>> I created everything you said, a new: >>> >>> ServicesConfig.mxml in the config folder and pointed to it >>> in <crux:beanProviders> >>> >>> Then I created: >>> UsuarioController >>> UsuarioEvent >>> UsusarioService >>> >>> for my "usuario" needs. >>> >>> The thing is, It does seem that the new controller is being referenced >>> during compile time. I Get the following: >>> >>> Activating JSStageEvents >>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>> name: userController } >>> : InjectProcessor set up [Inject] on Bean{ source: [object Object], >>> name: userController } >>> : [PostConstruct] executing createDefaultUser in UserController >>> : [JS] application setUp stub >>> >>> 2 for userController but none for usuarioController. >>> >>> When I call the UsuarioEvent, it dispatchers but doesn't get sent to the >>> UsuarioController. The userEvent dispatch correctly and is sent to the >>> UserContoller without a problem. >>> >>> 2 additional points of information. >>> >>> 1. Breakpoints (In Moonshine) are not working in the project, but they >>> are in others. >>> 2. There is a blue squiggle at the start of some of the files stating >>> that the files are not within the source directory, but they are. >>> >>> Any ideas? >>> >>> >>> >>> >>> >>> On Thu, 18 Feb 2021 at 17:42, David Slotemaker de Bruine < >>> [email protected]> wrote: >>> >>>> Great! Thank you! >>>> >>>> I will give it a shot! >>>> >>>> On Thu, 18 Feb 2021 at 17:07, Carlos Rovira <[email protected]> >>>> wrote: >>>> >>>>> Hi, >>>>> >>>>> ok, let's go: >>>>> >>>>> 1.- REMOTEOBJECTS: You will have a mxml file that extends from Crux >>>>> BeanProvider. Let's call it ServicesConfig.mxml. There you have all you >>>>> mx:RemoteObject objects. So this object will provide all remote objects to >>>>> the rest of your app: >>>>> >>>>> <mx:RemoteObject id="loginService" >>>>> destination="loginService" >>>>> channelSet="{loginChannel}" >>>>> showBusyCursor="true"/> >>>>> >>>>> 2.- SERVICE: Then you have a "delegate" like in Cairngorm where you >>>>> inject the remote object: >>>>> >>>>> [Inject(source="loginService", required="true")] >>>>> public var service :RemoteObject = null; >>>>> >>>>> So the remoteobject with name "loginService" will be injected in the >>>>> public var service. In this delegate you can do things like this: >>>>> >>>>> public function recoverPassword(username :String, password :String) : >>>>> AsyncToken { >>>>> return service.recoverPassword(username, password); >>>>> } >>>>> >>>>> 3.- CONTROLLER: Here you have controller methods that will be called >>>>> with events and this will in the end call service methods in the delegate >>>>> layer: >>>>> >>>>> [EventHandler(event="LoginEvent.RECOVER_PASSWORD", properties= >>>>> "password")] >>>>> public function passwordRecovery(password :String) :void { >>>>> executeServiceCall(loginDelegate.recoverPassword(model.recoverUsername, >>>>> password), passwordRecoveryHandler); >>>>> } >>>>> >>>>> executeServiceCall is a Crux function that allow you to call a service >>>>> method and attach a result and fault handlers that will be on this >>>>> controller. So in a controller you have that method plus two handlers >>>>> (result and fault, but probably just the first since the second use to be >>>>> the same reusable for all) >>>>> >>>>> 4.- EVENT: You extend from CruxEvent and have things like this: >>>>> >>>>> public static const RECOVER_PASSWORD:String = "login.recoverPassword"; >>>>> >>>>> that match with the one in the controller. >>>>> >>>>> 5.- VIEW: Here you send the event: >>>>> >>>>> var event :LoginEvent = new LoginEvent(LoginEvent.RECOVER_PASSWORD); >>>>> event.password = newpassword.text; >>>>> dispatchEvent(event); >>>>> >>>>> And that's all >>>>> >>>>> I think this is a very simple but powerful arquitecture that allows to >>>>> organize code in a very good way, while using plain objects without the >>>>> need of extensions and more, since objects are injected. >>>>> >>>>> HTH >>>>> >>>>> Carlos >>>>> >>>>> El jue, 18 feb 2021 a las 16:51, Carlos Rovira (< >>>>> [email protected]>) escribió: >>>>> >>>>>> Hi David, >>>>>> >>>>>> we have it here [1], but anyway I'll try to give a bit more info. >>>>>> >>>>>> [1] https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>> >>>>>> El jue, 18 feb 2021 a las 16:49, Carlos Rovira (< >>>>>> [email protected]>) escribió: >>>>>> >>>>>>> Hi David, >>>>>>> >>>>>>> I'll try to write this on a wiki, since I don't think we have a >>>>>>> working example. Hope to come back to you soon. >>>>>>> >>>>>>> El jue, 18 feb 2021 a las 15:54, David Slotemaker de Bruine (< >>>>>>> [email protected]>) escribió: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> I come from a Flex Cairngorm background and I am trying to get my >>>>>>>> head around Crux and the Crux example. >>>>>>>> >>>>>>>> I have gone through the tutorial and read the documentation. But I >>>>>>>> am stuck on where to place my RemoteObject tags and how to >>>>>>>> reference/call >>>>>>>> them. >>>>>>>> >>>>>>>> The first code snippet from: >>>>>>>> >>>>>>>> https://apache.github.io/royale-docs/libraries/crux/service-layer >>>>>>>> >>>>>>>> Shows the injection of a "userService" RemoteObject and a >>>>>>>> "ServiceHelper". Where should these code if I am using the >>>>>>>> CruxQuickStart >>>>>>>> as a base? In UserService.as? Where should the <mx:RemoteObject> be >>>>>>>> defined >>>>>>>> so it can be injected? >>>>>>>> >>>>>>>> Any help would be great! >>>>>>>> >>>>>>>> David >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Carlos Rovira >>>>>>> Apache Member & Apache Royale PMC >>>>>>> *Apache Software Foundation* >>>>>>> http://about.me/carlosrovira >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> Carlos Rovira >>>>>> Apache Member & Apache Royale PMC >>>>>> *Apache Software Foundation* >>>>>> http://about.me/carlosrovira >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Carlos Rovira >>>>> Apache Member & Apache Royale PMC >>>>> *Apache Software Foundation* >>>>> http://about.me/carlosrovira >>>>> >>>>> >>>> >>>> -- >>>> >>>> *David Slotemaker de Bruïne* >>>> *Head of Educational Robotics* >>>> >>>> >>>> >>>> Av. Sarriá, 130 - 08017 Barcelona >>>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>>> >>>> >>>> T. +34 932 523 729 ext. 135 >>>> >>>> [email protected] >>>> >>> >>> >>> -- >>> >>> *David Slotemaker de Bruïne* >>> *Head of Educational Robotics* >>> >>> >>> >>> Av. Sarriá, 130 - 08017 Barcelona >>> <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> >>> >>> >>> T. +34 932 523 729 ext. 135 >>> >>> [email protected] >>> >> >> >> -- >> Carlos Rovira >> Apache Member & Apache Royale PMC >> *Apache Software Foundation* >> http://about.me/carlosrovira >> >> > > -- > > Piotr Zarzycki > -- *David Slotemaker de Bruïne* *Head of Educational Robotics* Av. Sarriá, 130 - 08017 Barcelona <https://maps.google.com/?q=Av.+Sarri%C3%A1,+130+-+08017+Barcelona&entry=gmail&source=g> T. +34 932 523 729 ext. 135 [email protected]
