Ok, problem solved, my friend with more experience help :) I made stupid mistake, I have wrong mapped User VO, instead this: [RemoteClass(alias="BL.User")] Now I have this: [RemoteClass(alias="DemoFluorine.BL.User")]
Thats why service returned me ObjectProxy --- In flexcoders@yahoogroups.com, Simon Bailey <si...@...> wrote: > > Yeh I heard about Flex wrapping results from certain remote requests > using the ObjectProxy class, cant remember why this happens but try > this and see what happens: > > var user:User = ObjectProxy( event.result ).object_proxy::object; > > Cheers, > > S > > On 24 Jun 2009, at 13:23, vladakg85 wrote: > > > > > > > I am trying whole morning, I try to cast it in everything :( From > > remote service I return object "User", same VO object like in flex > > application. > > But is this image below ok, becuse I don't see User object anywhere, > > this is my evt.result. > > > > http://img31.imageshack.us/img31/9747/debug2.jpg > > > > --- In flexcoders@yahoogroups.com, Simon Bailey <simon@> wrote: > > > > > > Something is wrong with your assigning the remote result to the data > > > in your Proxy. The 'data' object has not been cast to User() and is > > > instead typed as ObjectProxy? > > > > > > On 23 Jun 2009, at 16:15, vladakg85 wrote: > > > > > > > > > > > > > > > http://img37.imageshack.us/i/debug1.jpg/ > > > > > > > > this is debug from mediator. > > > > loginUserData is always null :( > > > > > > > > --- In flexcoders@yahoogroups.com, Simon Bailey <simon@> wrote: > > > > > > > > > > Debug man, check the datatype of the object coming back from > > your > > > > > remote request, maybe there is a problem with the cast. Is the > > > > Object > > > > > from your remote result datatyped? > > > > > > > > > > Try assigning it to a var first and then debug to see if the > > cast > > > > > works. If on debug you cast the result successfully and can > > see the > > > > > cast variable in debugger no problem there should be no reason > > why > > > > you > > > > > cannot then send that variable on a notification. > > > > > > > > > > What is showing in the debugger in your mediator? > > > > > > > > > > On 23 Jun 2009, at 15:50, vladakg85 wrote: > > > > > > > > > > > > > > > > > > > > > > > I tried this data = evt.result as User; and its not work. > > > > > > I also tried to send User data with notification, same again. > > > > > > > > > > > > LoginCommand > > > > > > [code] > > > > > > override public function > > execute(notification:INotification):void > > > > > > { > > > > > > var myUser:User = notification.getBody() as User; > > > > > > var loginProxy:LoginProxy; > > > > > > loginProxy = facade.retrieveProxy(LoginProxy.NAME) as > > LoginProxy; > > > > > > loginProxy.tryLogin(myUser.username, myUser.password); > > > > > > } > > > > > > [/code] > > > > > > > > > > > > Mediator > > > > > > [code] > > > > > > override public function > > > > > > handleNotification(notification:INotification):void > > > > > > { > > > > > > switch (notification.getName()) > > > > > > { > > > > > > case ApplicationFacade.LOGIN_SUCCESFUL: > > > > > > var uProxy:LoginProxy; > > > > > > uProxy = facade.retrieveProxy(LoginProxy.NAME) as LoginProxy; > > > > > > var u:User = notification.getBody() as User; > > > > > > Alert.show("welcome: " + u.realName+ ", " + u.City); > > > > > > break; > > > > > > case ApplicationFacade.LOGIN_FAILED: > > > > > > Alert.show("sorry pal, wrong password"); > > > > > > break; > > > > > > } > > > > > > } > > > > > > [/code] > > > > > > --- In flexcoders@yahoogroups.com, Simon Bailey <simon@> > > wrote: > > > > > > > > > > > > > > In your onResult method try assigning the data like: > > > > > > > > > > > > > > data = evt.result as User; // cast result to a User Object > > and > > > > > > assign > > > > > > > to data > > > > > > > > > > > > > > Then you need to either: > > > > > > > > > > > > > > a) Have you mediator access the loginUserData directly (you > > > > may need > > > > > > > to set it up as Bindable and dispatch an updated event - > > see http://bit.ly/14Rlqd > > > > > > > and look at my HandleLoginProxy). > > > > > > > b) Easier to assign the loginUserData as the notification > > body > > > > e.g. > > > > > > > sendNotification( ApplicationFacade.LOGIN_SUCCESSFUL, > > > > > > loginUserData ); > > > > > > > and in your Mediator register an interest in the > > > > LOGIN_SUCCESSFUL > > > > > > > notification and simply pull out the loginUserData object > > using > > > > > > > note.getBody(). > > > > > > > > > > > > > > I would go for option (b)! > > > > > > > > > > > > > > On 23 Jun 2009, at 14:59, vladakg85 wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > Hi, thank you so much, I did something that I was trying > > for > > > > whole > > > > > > > > month :( ddd :) But now I have one more problem, this > > one is > > > > > > small :) > > > > > > > > > > > > > > > > 1) I make remote call to .NET to login user, everything is > > > > fine > > > > > > > > retrive data, check if user exists its ok, data from > > service > > > > are > > > > > > in > > > > > > > > proxy, this is my code for this: > > > > > > > > [code] > > > > > > > > public class LoginProxy extends Proxy implements IProxy > > > > > > > > { > > > > > > > > public static const NAME:String = "loginProxy"; > > > > > > > > > > > > > > > > > > > > > > > > private var loginRemoteService:RemoteObject; > > > > > > > > > > > > > > > > public function LoginProxy() > > > > > > > > { > > > > > > > > super(NAME, new User()); > > > > > > > > > > > > > > > > loginRemoteService = new RemoteObject("fluorine"); > > > > > > > > loginRemoteService.source = "BL.Sample"; > > > > > > > > loginRemoteService > > > > > > > > > > .LoginUserByEnteredData.addEventListener(ResultEvent.RESULT, > > > > > > > > onResult); > > > > > > > > loginRemoteService.addEventListener(FaultEvent.FAULT, > > > > onFault); > > > > > > > > } > > > > > > > > > > > > > > > > private function onResult(evt:ResultEvent):void > > > > > > > > { > > > > > > > > setData(evt.result); > > > > > > > > sendNotification(ApplicationFacade.LOGIN_SUCCESFUL); > > > > > > > > } > > > > > > > > > > > > > > > > private function onFault(evt:FaultEvent):void > > > > > > > > { > > > > > > > > sendNotification(ApplicationFacade.LOGIN_FAILED); > > > > > > > > } > > > > > > > > > > > > > > > > public function get loginUserData():User > > > > > > > > { > > > > > > > > return data as User; > > > > > > > > } > > > > > > > > > > > > > > > > public function tryLogin(p1:String, p2:String):void > > > > > > > > { > > > > > > > > loginRemoteService.LoginUserByEnteredData(p1, p2); > > > > > > > > } > > > > > > > > } > > > > > > > > } > > > > > > > > [/code] > > > > > > > > > > > > > > > > Problem is in mediator, because I send successful > > notification > > > > > > from > > > > > > > > proxy to mediator, and I want to preview returned data > > > > > > ("Welcome: " > > > > > > > > + name + username + city ... etc.), but problem is because > > > > > > > > "loginUserData" is null. And in debug, data is full with > > > > data but > > > > > > > > they are private so can't use it, what I have done? > > > > > > > > > > > > > > > > --- In flexcoders@yahoogroups.com, Simon Bailey <simon@> > > > > wrote: > > > > > > > > > > > > > > > > > > > 1) What should I do/type to store data in proxy and in > > > > what > > > > > > var? > > > > > > > > Is > > > > > > > > > > there any special var? > > > > > > > > > > > > > > > > > > > Typically the proxy is storing an Object with your data > > > > which > > > > > > > > could as > > > > > > > > > your quite rightly state, be a result from a service > > call of > > > > > > some > > > > > > > > > type. For example, an ArrayCollection containing all > > your > > > > user > > > > > > value > > > > > > > > > objects. The IProxy interface exposes a property named > > data > > > > > > which is > > > > > > > > > typed as an Object, this can be cast to data type you > > want > > > > and > > > > > > > > > instantiated in your Proxy class constructor, set > > through > > > > the > > > > > > data > > > > > > > > > reference and retrieved using a simple getter (see > > below): > > > > > > > > > > > > > > > > > > public function UserProxy() > > > > > > > > > { > > > > > > > > > super( NAME, new ArrayCollection ); // second param is > > > > > > instantiating > > > > > > > > > the data Object casting as a new ArrayCollection > > > > > > > > > } > > > > > > > > > > > > > > > > > > public function > > assignAllUsers( val:ArrayCollection ):void > > > > > > > > > { > > > > > > > > > data = val; // Assign the result from a service call to > > > > our data > > > > > > > > > array collection > > > > > > > > > } > > > > > > > > > > > > > > > > > > public function get > > userArrayCollection():ArrayCollection > > > > > > > > > { > > > > > > > > > return data as ArrayCollection; // return the proxy data > > > > > > object as > > > > > > > > an > > > > > > > > > ArrayCollection > > > > > > > > > } > > > > > > > > > > > > > > > > > > > 2) How to get specific data from proxy? > > > > > > > > > > > > > > > > > > > > > > > > > > > > Using the public getter as shown above > > > > > > > > > > > > > > > > > > > 3) What is the connection between commands and proxy > > > > > > > > > > > > > > > > > > > > > > > > > > > > You can use a command to interact with the proxy e.g. > > pass > > > > login > > > > > > > > > information to the proxy which will send the data to a > > > > remote > > > > > > > > service > > > > > > > > > for verification. > > > > > > > > > > > > > > > > > > > 4) If I have User Proxy with ability to log in user, > > log > > > > out > > > > > > user, > > > > > > > > > > display user name, display user details... should I > > put > > > > all > > > > > > this > > > > > > > > in > > > > > > > > > > one proxy or make separate: > > > > > > > > > > loginProxy > > > > > > > > > > getUserNameProxy > > > > > > > > > > userDetailsProxy > > > > > > > > > > etc. > > > > > > > > > > > > > > > > > > > > > > > > > > > > Depends on what data, if we go by what you suggested > > i.e. > > > > > > username > > > > > > > > > password and general user details then I personally > > would > > > > have a > > > > > > > > > UserProxy which handles the user details as a whole. > > > > > > > > > > > > > > > > > > HTH, > > > > > > > > > > > > > > > > > > Simon > > > > > > > > > > > > > > > > > > [ Blog ] nutrixinteractive.com/blog/ > > > > > > > > > > > > > > > > > > On 23 Jun 2009, at 11:34, vladakg85 wrote: > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > I try to learn this framework for a month, and I > > always > > > > stack > > > > > > > > > > somewhere, and now I need help. > > > > > > > > > > What I know: to make view, to make mediators, to make > > > > > > commands.. > > > > > > > > > > But, I don't understand proxy at all. > > > > > > > > > > First what should be there. I think that this is the > > place > > > > > > where I > > > > > > > > > > store service call methods and keep returned data from > > > > > > server so I > > > > > > > > > > can use that data through every part of application > > > > (just to > > > > > > grab > > > > > > > > > > them). Ok, maybe I am ok with this, but I don't know > > how > > > > to > > > > > > > > > > implement this :(. 1) What should I do/type to store > > > > data in > > > > > > proxy > > > > > > > > > > and in what var? Is there any special var? > > > > > > > > > > 2) How to get specific data from proxy? > > > > > > > > > > 3) What is the connection between commands and proxy > > > > > > > > > > 4) If I have User Proxy with ability to log in user, > > log > > > > out > > > > > > user, > > > > > > > > > > display user name, display user details... should I > > put > > > > all > > > > > > this > > > > > > > > in > > > > > > > > > > one proxy or make separate: > > > > > > > > > > loginProxy > > > > > > > > > > getUserNameProxy > > > > > > > > > > userDetailsProxy > > > > > > > > > > etc. > > > > > > > > > > > > > > > > > > > > Please help me to understand this framework, I am > > > > crying :(` > > > > > > > > > > > > > > > > > > > > Thanks, for any answer > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >