Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Darren Houle



"user defined" and "system defined" ???  A "system defined" class was 
created by a user at some time in the past and then included in the class 
libraries... now, you write new code, extend existing classes, create 
entirely new classes, etc... when it's compiled it all gets glommed 
together.  So what's the difference?  The Date class is no more real or 
concrete than the LoginVO class.  The compiler is aware of both types, where 
they come from, what they are derived from, what they extend, what they 
implement, etc.  No, I agree with Tobias and fall back on the lessons I 
learned from Java.util.Vector... I think the reason you cast something is 
when its runtime type would not be known and could be anything.  With a 
Vector you have to cast everything that you pull out because it could 
potentially be any type of object that was put in, and Java wants to know 
for sure what the type is coming out.  I guess Flex is a little more 
forgiving and will try and default type objects in certain situations, but 
if you cast them then it knows for sure and would therefore be more 
efficient(?)  Unless... the object type is not hidden, which is the case 
here.  The compiler should know what that model is a LoginVO and it should 
not need to be cast.  I guess in this case it's simply an efficiency thing, 
doesn't hurt to cast it, still works without casting it.  Just confused me a 
little to see something cast when it didn't need it.

Thanks!
Darren



>From: Suresh Akula <[EMAIL PROTECTED]>
>Reply-To: flexcoders@yahoogroups.com
>To: flexcoders@yahoogroups.com
>Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question
>Date: Tue, 25 Apr 2006 14:04:35 -0700 (PDT)
>
>LoginVO is user defined object and where as Date is
>System defined object, no need to type the these
>objects.
>
>--Suresh
>
>
>
>--- Darren Houle <[EMAIL PROTECTED]> wrote:
>
> > But when?  Why?  In every case?  If that was a
> > generic, universal rule and
> > you're supposed to cast everything as it's original
> > object type then a
> > little further in the line we should see:
> >
> > ' at ' + Date(model.loginDate) }" />
> >
> > I'm just curious why the LoginVO is cast here.  Is
> > there some rule like "you
> > don't have to cast an object when simply accessing
> > an attribute of that
> > object, but you do have to cast an object if it
> > contains other objects with
> > an attributes you need to access."  That sounds
> > kinda silly to me, that's
> > why I'm asking :-)
> >
> > Thanks!
> > Darren
> >
> >
> >
> > >From: Suresh Akula <[EMAIL PROTECTED]>
> > >Reply-To: flexcoders@yahoogroups.com
> > >To: flexcoders@yahoogroups.com
> > >Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2
> > - Simple Question
> > >Date: Tue, 25 Apr 2006 12:59:59 -0700 (PDT)
> > >
> > >Hello Darren,
> > >
> > >    its good partice to typecast with orginal
> > object
> > >and invoke the object members.
> > >
> > >--Suresh Akula.
> > >
> > >
> > >--- Darren Houle <[EMAIL PROTECTED]> wrote:
> > >
> > > > I'm fairly new to Flex and really new to
> > Cairngorm
> > > > and am trying to break
> > > > Cg2 down and understand it (I'm not trying to
> > > > understand Cg.99 and then
> > > > learn Cg2, I'm just jumping into 2.)  I have a
> > quick
> > > > question:
> > > >
> > > > In the Cg2 sample CairngormLogin.mxml theres a
> > Label
> > > > in the "loggedIn"
> > > > VBox...
> > > >
> > > > 
> > > >
> > > > This seems to still work fine when changed to...
> > > >
> > > > 
> > > >
> > > > Is there some reason why the first form must be
> > used
> > > > over of the second
> > > > form?  If I were writing this code myself from
> > > > scratch it would seem more
> > > > intuitive to bind directly to the
> > > > model.loginVO.username.  Am I missing
> > > > something?
> > > >
> > > > Thanks,
> > > > Darren
> > > >
> > > >
> > > >
> > >
> > >
> > >__
> > >Do You Yahoo!?
> > >Tired of spam?  Yahoo! Mail has the best spam
> > protection around
> > >http://mail.yahoo.com
> > >
> &g

RE: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Tobias Patton



IMHO, it makes no difference where the object is defined. In general, if
the object returned by a function call or accessor is not the type you
think it is, then you must cast it to the correct type before calling
methods or accessors defined in that type.

It gets a little bit complicated, but the crux of the problem is that
every object has two types: its static (compile-time) and its dynamic
(runtime) type. For instance I can say:

var o : Object = new String( "Hello World" );

The static type of o is Object, but its actual runtime type is String. I
can do this because String derives from Object. It's always possible to
assign an object to an instance of a class from which that object
derives.

Casting tells the compiler that you want to ignore the static type of an
object, and treat it as its dynamic type.

For example:

var myArray : Array = [ 1, 2.0, "Hello World" ];
var s : String = String( myArray[ 2 ] );
var l : int = String( myArray[ 2 ] ).length;
var o : Object = myArray[ 1 ];
var n : Number = Number( o );

Arrays can hold any object. Because of this, when you get an element out
of an Array, it is returned to you as an Object regardless of its actual
type. Casting tells the compiler that you, the programmer, know that the
returned Object is actually some other type. In the example above, I can
successfully cast Objects to String and Number.

The compiler will generate an error if the class of the object being
cast is not a super-class of the class your casting it to. Since String
and Number both derive from Object, the examples above work. But this
would generate a compiler error:

var b : VBox = new VBox();
var s : String = String( b );

because String does not derive from VBox.

Casting can generate runtime errors as well. The compiler can only check
static type information. If the actual type of the object being cast
does not derive from the type it's being cast to, you will get a
run-time error. For example:

Var s : String = String( myArray[ 1 ] );

Because the element at position 1 in the array is a Number, and because
Number does not derive from String, this command will generate a
run-time error. (This might actually not generate an error -- I haven't
tried it --  but only because there's some voodoo going on behind the
scenes that coerces between unrelated types.)

This is a very round-about way of saying that I think the Cairngorm
example is wrong. There is no need to cast model.loginVO to LoginVO
before accessing the username property. In the ViewLocator class, the
loginVO property is typed as LoginVO, so no casting is necessary. It's
runtime type matches its static type.

Tobias.

-Original Message-
From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Suresh Akula
Sent: Tuesday, April 25, 2006 2:05 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

LoginVO is user defined object and where as Date is 
System defined object, no need to type the these
objects.

--Suresh



--- Darren Houle <[EMAIL PROTECTED]> wrote:

> But when?  Why?  In every case?  If that was a
> generic, universal rule and 
> you're supposed to cast everything as it's original
> object type then a 
> little further in the line we should see:
> 
> ' at ' + Date(model.loginDate) }" />
> 
> I'm just curious why the LoginVO is cast here.  Is
> there some rule like "you 
> don't have to cast an object when simply accessing
> an attribute of that 
> object, but you do have to cast an object if it
> contains other objects with 
> an attributes you need to access."  That sounds
> kinda silly to me, that's 
> why I'm asking :-)
> 
> Thanks!
> Darren
> 
> 
> 
> >From: Suresh Akula <[EMAIL PROTECTED]>
> >Reply-To: flexcoders@yahoogroups.com
> >To: flexcoders@yahoogroups.com
> >Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2
> - Simple Question
> >Date: Tue, 25 Apr 2006 12:59:59 -0700 (PDT)
> >
> >Hello Darren,
> >
> >    its good partice to typecast with orginal
> object
> >and invoke the object members.
> >
> >--Suresh Akula.
> >
> >
> >--- Darren Houle <[EMAIL PROTECTED]> wrote:
> >
> > > I'm fairly new to Flex and really new to
> Cairngorm
> > > and am trying to break
> > > Cg2 down and understand it (I'm not trying to
> > > understand Cg.99 and then
> > > learn Cg2, I'm just jumping into 2.)  I have a
> quick
> > > question:
> > >
> > > In the Cg2 sample CairngormLogin.mxml theres a
> Label
> > > in the "loggedIn"
> > > VBox...
> > >
> > > 
> > >
> > > This seems to still work fine when c

Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Suresh Akula



LoginVO is user defined object and where as Date is 
System defined object, no need to type the these
objects.

--Suresh



--- Darren Houle <[EMAIL PROTECTED]> wrote:

> But when?  Why?  In every case?  If that was a
> generic, universal rule and 
> you're supposed to cast everything as it's original
> object type then a 
> little further in the line we should see:
> 
> ' at ' + Date(model.loginDate) }" />
> 
> I'm just curious why the LoginVO is cast here.  Is
> there some rule like "you 
> don't have to cast an object when simply accessing
> an attribute of that 
> object, but you do have to cast an object if it
> contains other objects with 
> an attributes you need to access."  That sounds
> kinda silly to me, that's 
> why I'm asking :-)
> 
> Thanks!
> Darren
> 
> 
> 
> >From: Suresh Akula <[EMAIL PROTECTED]>
> >Reply-To: flexcoders@yahoogroups.com
> >To: flexcoders@yahoogroups.com
> >Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2
> - Simple Question
> >Date: Tue, 25 Apr 2006 12:59:59 -0700 (PDT)
> >
> >Hello Darren,
> >
> >    its good partice to typecast with orginal
> object
> >and invoke the object members.
> >
> >--Suresh Akula.
> >
> >
> >--- Darren Houle <[EMAIL PROTECTED]> wrote:
> >
> > > I'm fairly new to Flex and really new to
> Cairngorm
> > > and am trying to break
> > > Cg2 down and understand it (I'm not trying to
> > > understand Cg.99 and then
> > > learn Cg2, I'm just jumping into 2.)  I have a
> quick
> > > question:
> > >
> > > In the Cg2 sample CairngormLogin.mxml theres a
> Label
> > > in the "loggedIn"
> > > VBox...
> > >
> > > 
> > >
> > > This seems to still work fine when changed to...
> > >
> > > 
> > >
> > > Is there some reason why the first form must be
> used
> > > over of the second
> > > form?  If I were writing this code myself from
> > > scratch it would seem more
> > > intuitive to bind directly to the
> > > model.loginVO.username.  Am I missing
> > > something?
> > >
> > > Thanks,
> > > Darren
> > >
> > >
> > >
> >
> >
> >__
> >Do You Yahoo!?
> >Tired of spam?  Yahoo! Mail has the best spam
> protection around
> >http://mail.yahoo.com
> >
> >
> >--
> >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
> >
> >
> >
> >
> >
> >
> 
> 
> 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 






--
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



   Visit your group "flexcoders" on the web. 
   To unsubscribe from this group, send an email to: [EMAIL PROTECTED] 
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



  











Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Darren Houle



But when?  Why?  In every case?  If that was a generic, universal rule and 
you're supposed to cast everything as it's original object type then a 
little further in the line we should see:

' at ' + Date(model.loginDate) }" />

I'm just curious why the LoginVO is cast here.  Is there some rule like "you 
don't have to cast an object when simply accessing an attribute of that 
object, but you do have to cast an object if it contains other objects with 
an attributes you need to access."  That sounds kinda silly to me, that's 
why I'm asking :-)

Thanks!
Darren



>From: Suresh Akula <[EMAIL PROTECTED]>
>Reply-To: flexcoders@yahoogroups.com
>To: flexcoders@yahoogroups.com
>Subject: Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question
>Date: Tue, 25 Apr 2006 12:59:59 -0700 (PDT)
>
>Hello Darren,
>
>    its good partice to typecast with orginal object
>and invoke the object members.
>
>--Suresh Akula.
>
>
>--- Darren Houle <[EMAIL PROTECTED]> wrote:
>
> > I'm fairly new to Flex and really new to Cairngorm
> > and am trying to break
> > Cg2 down and understand it (I'm not trying to
> > understand Cg.99 and then
> > learn Cg2, I'm just jumping into 2.)  I have a quick
> > question:
> >
> > In the Cg2 sample CairngormLogin.mxml theres a Label
> > in the "loggedIn"
> > VBox...
> >
> > 
> >
> > This seems to still work fine when changed to...
> >
> > 
> >
> > Is there some reason why the first form must be used
> > over of the second
> > form?  If I were writing this code myself from
> > scratch it would seem more
> > intuitive to bind directly to the
> > model.loginVO.username.  Am I missing
> > something?
> >
> > Thanks,
> > Darren
> >
> >
> >
>
>
>__
>Do You Yahoo!?
>Tired of spam?  Yahoo! Mail has the best spam protection around
>http://mail.yahoo.com
>
>
>--
>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
>
>
>
>
>
>








--
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



   Visit your group "flexcoders" on the web. 
   To unsubscribe from this group, send an email to: [EMAIL PROTECTED] 
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



  











Re: [flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Suresh Akula



Hello Darren,

   its good partice to typecast with orginal object
and invoke the object members.

--Suresh Akula.
    

--- Darren Houle <[EMAIL PROTECTED]> wrote:

> I'm fairly new to Flex and really new to Cairngorm
> and am trying to break 
> Cg2 down and understand it (I'm not trying to
> understand Cg.99 and then 
> learn Cg2, I'm just jumping into 2.)  I have a quick
> question:
> 
> In the Cg2 sample CairngormLogin.mxml theres a Label
> in the "loggedIn" 
> VBox...
> 
> 
> 
> This seems to still work fine when changed to...
> 
> 
> 
> Is there some reason why the first form must be used
> over of the second 
> form?  If I were writing this code myself from
> scratch it would seem more 
> intuitive to bind directly to the
> model.loginVO.username.  Am I missing 
> something?
> 
> Thanks,
> Darren
> 
> 
> 


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com








  
  
SPONSORED LINKS
  
  
  

Web site design development
  
  
Computer software development
  
  
Software design and development
  
  


Macromedia flex
  
  
Software development best practice
  

   
  







  
  
  YAHOO! GROUPS LINKS



   Visit your group "flexcoders" on the web. 
   To unsubscribe from this group, send an email to: [EMAIL PROTECTED] 
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.



  











[flexcoders] Flex 2 B 2 + Cairngorm 2 - Simple Question

2006-04-25 Thread Darren Houle



I'm fairly new to Flex and really new to Cairngorm and am trying to break 
Cg2 down and understand it (I'm not trying to understand Cg.99 and then 
learn Cg2, I'm just jumping into 2.)  I have a quick question:

In the Cg2 sample CairngormLogin.mxml theres a Label in the "loggedIn" 
VBox...



This seems to still work fine when changed to...



Is there some reason why the first form must be used over of the second 
form?  If I were writing this code myself from scratch it would seem more 
intuitive to bind directly to the model.loginVO.username.  Am I missing 
something?

Thanks,
Darren








--
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



   Visit your group "flexcoders" on the web. 
   To unsubscribe from this group, send an email to: [EMAIL PROTECTED] 
   Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.