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
