I use ViewLocator (the Singleton) only when I need to. I don't like it, but
still feel it has rare, but valid uses.
I do not use, nor promote the use of ViewHelper's. I think they are evil,
nasty, and just plain f'd up.
I've only used ViewLocator.getComponentByID("name").someMethod() 3 times
because there was 1 View that is immensely popular in my app, but already
has enough state stuff going on, the last thing I want is nother state
variable to keep track of.
Don't forget, you can make more than 1 ModelLocator; just depends on the
scope of your app really and what data you are really putting there.
----- Original Message -----
From: "Jonathan Miranda" <[EMAIL PROTECTED]>
To: <flexcoders@yahoogroups.com>
Sent: Wednesday, April 26, 2006 6:39 PM
Subject: Re: [flexcoders] PLEASE: Could someone at Adobe/Macromedia do a
Carnigorm Video Intro.
Good stuff Jester, maybe I'll have to give the ViewHelper more of a
look....as some said, I've cheapened the use of the ModelLocator for a
lot of this - but most of my work is exclusively in Flex2 so I haven't
dealt with your callback issues.
Thanks for the code.....dont mind me, going to take a nap to try and
forget you saying you used 3 ViewLocators (my god man!)
On 4/26/06, JesterXL <[EMAIL PROTECTED]> wrote:
> In 1, the peeps I've worked with have done the same thing. We do not use
> ViewHelpers. We've basically built our own version of ViewLocator. The
> Cairngorm 1 version took a ViewHelper ID usually whereas we just pass in
> the
> View's id name with a reference. So:
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Panel
> creationComplete="onMyPanelCreationComplete()"
> unload="onUnloaded()"
> xmlns:mx="http://www.macromedia.com/2003/mxml">
>
> <mx:Script>
> <![CDATA[
>
> import ViewLocatorX;
>
> function onMyPanelCreationComplete()
> {
> ViewLocatorX.registerComponentByID(this.id, this);
> }
>
> function onUnloaded()
> {
> ViewLocatorX.unregisterComponentByID(this.id, this);
> }
>
> </mx:Panel>
>
> So, when she's loaded up, the ViewLocator has a reference to it. You can
> pass in a string name to access it. Pretty flexible using a string, but
> dangerous unless you put those "globally accessible views" names in a
> constant class somewhere. Example:
>
> class ViewNameConstants
> {
> public static var LOGIN_PANEL:String = "loginPanel";
> }
>
> That way, when you do this:
>
> <view:LoginPanel id="loginPanel" xmlns:view="*" />
>
> As long as you don't have deferred instantiation on, you can do:
>
> var loginPanel = ViewLocator.getComponentByID (
> ViewNameConstants.LOGIN_PANEL );
> loginPanel.doLogin();
>
> Cairngorm purists would be strong proponents of binding the LoginPanel to
> a
> state variable, and modifying that state variable in a Command. The
> LoginPanel could then have one of its bindings fire, and thus call that
> method.
>
> However, until recently, we didn't have the ability to support Command
> callbacks. As such we had a log of views that needed to know when their
> data was ready. For display it's pretty easy; you just bind your DataGrid
> to an array; poof, your done. But for more advanced scenarios when you
> need
> to act upon that data, without knowledge of when a command is done (or
> some
> other dataservice specific event), you start ending up with a plethora of
> state variables. To me, that's an f'ing nightmare. Flex is already event
> based, and it's built into the player in Flash Player 9, so why not use
> events?
>
> Cairngorm originally didn't support callbacks, but it's trivial to add.
> As
> such, I still have instances where I use a ViewLocator (albeit 3 if I
> remember correctly within a huge code base) where I need to call a method
> on
> another view. I don't like doing it, but still view it as a valid
> solution.
>
> I akin it to Singleton vs. Memento. You see many many cases of Singleton
> being used, and it generally accepted practice to utilize Singletons. Not
> many people use, nor talk about, Memento. It's still a valid pattern to
> solve problems though. ViewLocator, to me, just has a hack feeling to it,
> but I'd be hard pressed to live without it.
>
> Cairngorm 2? Basically same thing. You're ViewLocator would work about
> the
> same in both instances:
>
> package
> {
> public class ViewLocator
> {
>
> protected var components_hash:Object;
>
> public function registerComponentByID ( p_id:String,
> p_ref:UIComponent):void
> {
> components_hash[p_id] = p_ref;
> }
> }
> }
>
> Pseudo code, but you get the point.
>
>
>
> ----- Original Message -----
> From: "Jonathan Miranda" <[EMAIL PROTECTED]>
> To: <flexcoders@yahoogroups.com>
> Sent: Wednesday, April 26, 2006 5:51 PM
> Subject: Re: [flexcoders] PLEASE: Could someone at Adobe/Macromedia do a
> Carnigorm Video Intro.
>
>
> Let's be difficult....both! :)
>
> On 4/26/06, JesterXL <[EMAIL PROTECTED]> wrote:
> > In Cairngorm 1 or 2?
> >
> > ----- Original Message -----
> > From: "Jonathan Miranda" <[EMAIL PROTECTED]>
> > To: <flexcoders@yahoogroups.com>
> > Sent: Wednesday, April 26, 2006 5:35 PM
> > Subject: Re: [flexcoders] PLEASE: Could someone at Adobe/Macromedia do a
> > Carnigorm Video Intro.
> >
> >
> > Got any examples of this Jester?
> >
> > On 4/26/06, JesterXL <[EMAIL PROTECTED]> wrote:
> > > If you're an OOP, Cairngorm purist, sure. However, for those of use
> > > under
> > > extreme deadlines who have no problem tossing lofty ideals out the
> > > window,
> > > ViewLocator is a life saver. If there is a need to have some view
> > > tell
> > > another view not within the direct DisplayList to do something, it's a
> > > nice
> > > to have. To be honest, I feel dirty everytime I use it though.
> > >
> > > ----- Original Message -----
> > > From: <[EMAIL PROTECTED]>
> > > To: <flexcoders@yahoogroups.com>
> > > Sent: Wednesday, April 26, 2006 3:19 PM
> > > Subject: Re: [flexcoders] PLEASE: Could someone at Adobe/Macromedia do
> > > a
> > > Carnigorm Video Intro.
> > >
> > >
> > > I'll send you a copy.
> > >
> > > On another note, I was looking at the ViewLocator/ViewHelper code and
> > > I
> > > found myself wondering how to implement it. It's not that the theory
> > > isn't
> > > sound, I'm sure it is - just try to find some simple working
> > > examples.
> > > Anyone out there have some simple Cairngorm2 ViewLocator examples?
> > > Steve
> > > Webster had mentioned to me that the ModelLocator can handle all the
> > > work
> > > that the ViewLocator/ViewHelper is intended to do, so perhaps they are
> > > not
> > > necessary. Thoughts?
> > >
> > >
> > >
> > >
> > >
> > >
> > > "Darren Houle" To:
> > > flexcoders@yahoogroups.com
> > > <[EMAIL PROTECTED]> cc:
> > > Sent by: Subject: Re:
> > > [flexcoders]
> > > PLEASE: Could someone at Adobe/Macromedia do a Carnigorm
> > > flexcoders@yahoogroups.com Video Intro.
> > > 04/26/2006 11:10 AM
> > > Please respond to
> > > flexcoders
> > >
> > >
> > >
> > >
> > >
> > >
> > > Hey Michael
> > >
> > > Any chance I could get that from you too? I've found the available
> > > Cg2
> > > examples out there somewhat lacking... the 6 part article talks about
> > > and
> > > uses Cg.99, but I have F2B2 installed so I want to learn Cg2. The Cg2
> > > CairngormLogin example has little documentation (not that it really
> > > does
> > > much anyway)... and there's a PhonesCairngorm2 example, but it's
> > > complex,
> > > uses Data Services, requires CF code, so... what I'd love to get my
> > > hands
> > > on
> > > would be a simple Cg2 example, one that has a couple simple RPC
> > > services
> > > to
> > >
> > > something like a public blog feed or a local XML data file, a couple
> > > VOs,
> > > a
> > >
> > > couple commands, a couple views, a couple controls. Nothing overly
> > > complicated and something with some healthy documentation (even inline
> > > comments would be fine.) Your example might not meet all those
> > > criteria,
> > > but that's totally okay, I'll take anything :-)
> > >
> > > Thanks!
> > > Darren
> > >
> > >
> > >
> > > >From: [EMAIL PROTECTED]
> > > >Reply-To: flexcoders@yahoogroups.com
> > > >To: flexcoders@yahoogroups.com
> > > >Subject: Re: [flexcoders] PLEASE: Could someone at Adobe/Macromedia
> > > >do
> > > >a
> > > >Carnigorm Video Intro.
> > > >Date: Wed, 26 Apr 2006 09:51:56 -0400
> > > >
> > > > I have a very (very) simple sample app that I use to illustrate how
> > > > to
> > > >get
> > > >the ball rolling with Cairngorm2 that I can send to you. It
> > > >includes
> > > >documentation on how to add your own dispatchEvent in step-by-step
> > > >instructions. I'm not knocking the Cairngorm2 'Login' example, but I
> > > think
> > > >that a 'hold-your-hand' example is helpful for those getting familiar
> > > >with
> > > >patterns.
> > > >
> > > >
> > > >
> > > >---------------------------------------------------------------------------
> > >
> > > >This e-mail message (including attachments, if any) is intended for
> > > >the
> > > use
> > > >of the individual or entity to which it is addressed and may contain
> > > >information that is privileged, proprietary , confidential and exempt
> > > >from
> > > >disclosure. If you are not the intended recipient, you are notified
> > > >that
> > > >any dissemination, distribution or copying of this communication is
> > > >strictly prohibited. If you have received this communication in
> > > >error,
> > > >please notify the sender and erase this e-mail message immediately.
> > > >---------------------------------------------------------------------------
> > >
> > > >
> > > >
> > > >
> > > >
> > > >--
> > > >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
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ---------------------------------------------------------------------------
> > > This e-mail message (including attachments, if any) is intended for
> > > the
> > > use
> > > of the individual or entity to which it is addressed and may contain
> > > information that is privileged, proprietary , confidential and exempt
> > > from
> > > disclosure. If you are not the intended recipient, you are notified
> > > that
> > > any dissemination, distribution or copying of this communication is
> > > strictly prohibited. If you have received this communication in
> > > error,
> > > please notify the sender and erase this e-mail message immediately.
> > > ---------------------------------------------------------------------------
> > >
> > >
> > >
> > >
> > > --
> > > 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
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> > --
> > 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
> >
> >
> >
> >
> >
> >
> >
> >
>
>
> --
> 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
>
>
>
>
>
>
>
--
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.