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 <
dslotema...@vicensvives.com> wrote:

> Great! Thank you!
>
> I will give it a shot!
>
> On Thu, 18 Feb 2021 at 17:07, Carlos Rovira <carlosrov...@apache.org>
> 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 (<carlosrov...@apache.org>)
>> 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 (<carlosrov...@apache.org>)
>>> 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 (<
>>>> dslotema...@vicensvives.com>) 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
>
> dslotema...@vicensvives.com
>


-- 

*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

dslotema...@vicensvives.com

Reply via email to