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

Reply via email to