Hi David,

the class to be used on the Service class should be:

mx.rpc.remoting.RemoteObject;

while the class used when you add in bean provider mxml file is
mx.rpc.remoting.mxml.RemoteObject;
although is transparent to you since you use <mx:RemoteObject/> without the
need of any import.

HTH

Carlos


El jue, 25 feb 2021 a las 18:08, David Slotemaker de Bruine (<
[email protected]>) escribió:

> Hi All,
>
> So after talking with Piotr I found my problem was I hadn't added the new
> Controller Component to the Beans.mxml. That is the key so that Crux knows
> where to assign the events the app dispatches.
>
> One issue we did run into was that the definition of the RemoteObjects
> weren't detected when they where defined in a seperate ServicesConfig.mxml
> within the config directory. Even though this file was referenced in
> <crux:beanProviders>.
>
> Adding the remote object definitions directly to Beans.mxl was the key.
>
> Also when Injecting the RemoteObject into the new XXXService.as file  it
> is of type:
>
> mx.rpc.remoting.mxml.RemoteObject;
>
> I now have issues getting the correct response from the server, but that
> will be another post :)
>
>
>
>
> On Thu, 25 Feb 2021 at 08:42, David Slotemaker de Bruine <
> [email protected]> wrote:
>
>> 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]
>>
>
>
> --
>
> *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