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]

Reply via email to