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/
 



Reply via email to