Thanks guys for helping me out here, but still i don't understand why should i need to have public members firstname,lastname etc in the CloserResultsForm form, isn't it involves redundancy and hard to maintain lots of member variables.
all i want is this, Class1 instanciate class A, class B, Class A has member variables A1,A2 and Class B has B1,B2 etc, if i want to display A1, B1 values using Class1, i should be saying classA.A1,classA.A2, ClassB.B1, ClassB.B2 etc, i don't want to declare A1,A2 in Class1 again in 2 palces. Am i missing something here about my design pattern? May be i'm confused. Pls help me soon. --- In [email protected], "douglowder" <[EMAIL PROTECTED]> wrote: > > You're almost there! What you want is for CloserDataAccess to return > a list of objects that contain firstname and lastname properties. > What you have now is a list of objects that contain other objects (the > UserProfileForms), which then contain firstname and lastname. > > If your CloserResultsForm java class had public members firstname and > lastname, initialized by calling the proper getters from > UserProfileForm, your datagrid should work. This wouldn't even > require the separate ActionScript classes for CloserResultsForm and > UserProfileForm. > > > Doug > > > --- In [email protected], "sshriyan27" <[EMAIL PROTECTED]> wrote: > > > > Thanks but still not working i made them private now. > > I'm totally lost with action script and object mapping. > > Do i need to use action script for the value objects i have, if that > > so is there any easy way to write action scripts same as the java > > objects. > > > > > > <mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml" > > initialize="initApp()" xmlns:i2view="view" pageTitle="Test > > Application"> > > > > <mx:Script> > > import src.com.flex.form.*; > > > > var users: Array; > > var upForm: UserProfileForm; > > var closerResultsForm: CloserResultsForm; > > var userList: Array; > > var resultList: Array; > > > > function initApp() { > > ro.getResults(); // returns CloserResultsForm as a > > collection > > > > } > > > > function getUserList_result(event) { > > userList=event.result; > > } > > > > function getResultList_result(event) { > > resultList=event.result; > > > > } > > > > > > </mx:Script> > > > > <mx:RemoteObject id="ro" > > source="com.chl.dataaccess.CloserDataAccess"> > > <mx:method name="getResults" result="getResultList_result > > (event)"/> > > </mx:RemoteObject> > > > > <mx:DataGrid id="dg" dataProvider="{resultList}" width="838" > > editable="true" showHeaders="true"> > > <mx:columns> > > <mx:Array> > > <mx:DataGridColumn columnName="firstname" > > headerText="Firstname"/> > > <mx:DataGridColumn columnName="lastname" > > headerText="Lastname"/> > > </mx:Array> > > </mx:columns> > > </mx:DataGrid> > > > > > > ** This is the situation i'm in now, we're going to develop new apps > > using RIA technology, we don't have time to learn action scripts or > > any other vedor specific scripts. so i'm trying to convince that > > flex is the best solution, but it looks like flex dev is not rapid > > as what i saw from demo, still lots of manual coding has to be done. > > May be i'm not understanding fully about flex. > > > > So can you guys tell me whether i should use flex or coldfushion or > > ajax with struts as i did before. > > > > Thanks > > > > > > --- In [email protected], "douglowder" <[EMAIL PROTECTED]> > > wrote: > > > > > > Ah, it looks like you have taken both my *and* Dave's advice, when > > you > > > really only needed to do one or the other. So, if you don't have a > > > problem with making your firstname and lastname variables public in > > > your UserProfileForm POJO (which you might, since it kind of > > defeats > > > the purpose of getters and setters), then just pass your datagrid a > > > collection of UserProfileForms: > > > > > > <mx:DataGrid dataProvider="{myUserProfileFormCollection}" /> > > > > > > This will display the entire object in the datagrid. If you only > > want > > > to see certain fields, or want to specify a specific order, define > > > columns for the datagrid like so: > > > > > > <mx:DataGrid dataProvider="{myUserProfileFormCollection}"> > > > <mx:columns> > > > <mx:Array> > > > <mx:DataGridColumn columnName="firstname" > > > headerText="First Name"/> > > > <mx:DataGridColumn columnName="lastname" > > > headerText="Last Name"/> > > > </mx:Array> > > > </mx:columns> > > > </mx:DataGrid> > > > > > > If, however, you want to keep the members variables of your objects > > > hidden and provide access only through getters and setters, then > > > change the declarations back to private and follow Dave's advice. > > > > > > I hope that helps! > > > > > > Doug > > > > > > --- In [email protected], "sshriyan27" <[EMAIL PROTECTED]> > > wrote: > > > > > > > > Let me send you all my classes, i don't still understand! Thanks > > for > > > > your help anyway. > > > > > > > > public class UserProfileForm { > > > > > > > > public String firstname=null; > > > > public String lastname=null; > > > > > > > > public UserProfileForm(){} > > > > > > > > public String getFirstname() { > > > > return firstname; > > > > } > > > > public void setFirstname(String firstname) { > > > > this.firstname = firstname; > > > > } > > > > public String getLastname() { > > > > return lastname; > > > > } > > > > public void setLastname(String lastname) { > > > > this.lastname = lastname; > > > > } > > > > > > > > } > > > > > > > > public class CloserResultsForm implements Serializable{ > > > > public UserProfileForm userProfileForm; > > > > > > > > public CloserResultsForm(){ > > > > userProfileForm=new UserProfileForm(); > > > > } > > > > public UserProfileForm getUserProfileForm() { > > > > return userProfileForm; > > > > } > > > > public void setUserProfileForm(UserProfileForm > > > > userProfileForm) { > > > > this.userProfileForm = userProfileForm; > > > > } > > > > > > > > } > > > > > > > > ** my dataaccess returns collection of CloserResultsForm > > > > > > > > CloserResultsForm.as file > > > > class src.com.flex.form.CloserResultsForm{ > > > > public var userProfileForm : UserProfileForm; > > > > > > > > static var registered=Object.registerClass > > > > ("com.chl.form.CloserResultsForm", > > > > src.com.flex.form.CloserResultsForm); > > > > > > > > public function CloserResultsForm(){ > > > > this.userProfileForm=new UserProfileForm(); > > > > } > > > > } > > > > > > > > UserProfileForm.as file > > > > class src.com.flex.form.UserProfileForm{ > > > > public var firstname:String; > > > > public var lastname:String; > > > > public var _remoteClass; > > > > static var registered=Object.registerClass > > > > ("com.chl.form.UserProfileForm", > > src.com.flex.form.UserProfileForm); > > > > > > > > } > > > > > > > > How do i print the firstname and lastname in datagrid, am i > > missing > > > > something here. > > > > > > > > --- In [email protected], "Dave Wolf" <[EMAIL PROTECTED]> > > wrote: > > > > > > > > > > Ahh yes, the same J2EE struggles with property setting. As > > Doug > > > > says > > > > > you do not want to be calling a million setters on a remote > > object. > > > > > You are better off refactoring this to either create a new > > Value > > > > > Object, or to treat your existing class itself as a value > > object. > > > > > > > > > > So rather then getting a remote reference to say > > UserProfileForm, > > > > then > > > > > calling a million getters and setters, I would create a POJO > > which > > > > > returns the UserProfileForm as a return type. Then call all > > your > > > > > setters locally, and pass it back up to the server as the > > > > parameter to > > > > > another POJO method call. > > > > > > > > > > The second option is to add a new Value Object property to the > > > > > UserProfileForm. Again create the stub, call all the setters > > on > > > > the > > > > > local value object, then call one call on the UserProfileForm > > to > > > > > return this coarsly grained Value Object. > > > > > > > > > > You need to keep network calls in mind in your architecture. > > > > There is > > > > > a graveyard filled with failed J2EE projects who ignored the > > > > network > > > > > and the effects of not architecting around seriously reducing > > the > > > > > number and size of remote calls. > > > > > > > > > > -- > > > > > Dave Wolf > > > > > Cynergy Systems, Inc. > > > > > Macromedia Flex Alliance Partner > > > > > http://www.cynergysystems.com > > > > > > > > > > Email: [EMAIL PROTECTED] > > > > > Office: 866-CYNERGY > > > > > > > > > > > > > > > --- In [email protected], "douglowder" > > <[EMAIL PROTECTED]> > > > > wrote: > > > > > > > > > > > > Flex 1.5 does a pretty good job of automatically translating > > > > Java > > > > > > types to ActionScript, but only for members that are > > declared > > > > > > public, not private. So, if you want to continue using your > > > > getter > > > > > > routines for private members in your existing classes, be > > > > prepared > > > > > > to make a lot of calls to your remote object. You could > > also > > > > create > > > > > > a new "facade" Java class for mapping purposes, which would > > have > > > > > > public members for all the variables you want to expose to > > > > > > ActionScript, and have that class make all the calls to your > > > > > > existing class's getters to initialize those public > > members. > > > > You > > > > > > can then refer to the variables by name (the same name as in > > the > > > > > > Java class) from within ActionScript. > > > > > > > > > > > > Another thing to keep in mind is that datagrids expect to be > > > > passed > > > > > > arrays (actually, anything that implements the DataProvider > > > > > > interface) of objects, not a single object. If your Java > > calls > > > > are > > > > > > returning a single object instead of a list of objects, use > > > > > > mx.utils.ArrayUtil.toArray() on the result to convert it to > > an > > > > array > > > > > > in ActionScript. > > > > > > > > > > > > Doug > > > > > > > > > > > > > > > > > > --- In [email protected], "sshriyan27" > > > > <[EMAIL PROTECTED]> > > > > > > wrote: > > > > > > > > > > > > > > I'm new to Flex we're trying evaluate in our company > > whether > > > > we > > > > > > > should use FLEX or not. Right we have Java, Struts based > > > > > > application. > > > > > > > > > > > > > > I have a simple question, i have an Object and still > > strugling > > > > to > > > > > > > map that to an action script and datagrid. > > > > > > > How do i display values of UserProfileForm in datagrid, > > like > > > > in > > > > > > > Struts i used to do > > > > CloserResultsForm.userProfileForm.firstname > > > > > > (); > > > > > > > Can some one explain this to me. > > > > > > > ** I can get the Single object to get displayed but not > > the > > > > > > > inhertited ones. > > > > > > > > > > > > > > public class CloserResultsForm implements Serializable{ > > > > > > > private UserProfileForm userProfileForm; > > > > > > > } > > > > > > > > > > > > > > public class UserProfileForm { > > > > > > > private String username=null; > > > > > > > private int userid; > > > > > > > private String password=null; > > > > > > > private String firstname=null; > > > > > > > private String lastname=null; > > > > > > > private String roleName=null; > > > > > > > > > > > > > > public UserProfileForm(){ > > > > > > > > > > > > > > } > > > > > > > .... // then getters and setters for the above > > > > > > > } > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

