I am far from a Cairngorm authority, but the way I see it you could do
it one of 2 ways. The simplest would be to just put your function on
the model and call it that way. The other way is perhaps the more
'proper' way and I would imagine how it would work once you get the
web service implemented. That scenario would be to fire off an event
when the tree selection changes, map the event to a command in your
controller, and then your command can set the int, construct the sql,
call the ws, etc.

HTH,
Ben

PS - You should look into the BindingUtils class for info on watching
an int.



--- In flexcoders@yahoogroups.com, "jamiebadman" <[EMAIL PROTECTED]> wrote:
>
> Hi,
> 
> I'm currently implementing an app in Cairngorm 2.1 and I've hit a 
> kind of brick wall that wouldn't have existed in 0.99...
> 
> I'm led to believe that we should no longer use 
> ViewHelper/ViewLocator in V2.1 and instead rely more on data binding 
> to control everything... so here's the problem...
> 
> I have a treeView. In another mxml file I have a 'selection' screen 
> which builds a SQL query up based on things the user does. This is 
> then fired off and the results displayed in a table. Don't panic! 
> This will all be converted to formal webservices later, so 
> the 'inline' SQL will go away - this is just a quick prototype.
> 
> But anyway... here's the thing...
> 
> In mxml_1 we have the treeview. In mxml_2 we have the selection 
> screen and a function which constructs the SQL based on the values 
> of fields on the screen. We also have the firing of an event to send 
> the constructed query to the db. The grid is bound to an array 
> collection which is constructed when the command result is invoked.
> 
> One of the selection criteria is the branch of the treeview the user 
> is currently on...
> 
> So when the user selects another branch on the treeview, what I need 
> to happen is the sql construction function should be fired on mxml_2 
> which in turn retrieves the new SQL which is then displayed in the 
> table.
> 
> The problem I have is, how can I cause the function on mxml_2 to 
> fire ?
> 
> Once upon a time I could have simply used viewLocator to find the 
> mxml_2ViewHelper and fired a function on there...
> 
> But now... how can this work via databinding ?
> 
> I already have an int defined in the AppModelLocator which 
> represents the id of the current branch - but you can't add 
> a 'change' listener to an int - only ArrayCollections as far as I 
> can see. I *could* store this info in an ArrayCollection and have a 
> listener on that - but this seems pretty clunky and I'm sure there's 
> a much more 'correct' way to go about doing this in Cairngorm.
> 
> Another way I can do this is to invoke the function directly on 
> mxml_2, from mxml_1. I can do this because mxml_1 is in fact part of 
> a viewStack on mxml_1. However, is this the 'correct' way ? This is 
> how I'm currently doing it, because at least it works - but I really 
> want to build this application as closely to the Cairngorm 'ideal' 
> as I possibly can.
> 
> The docs on Cairngorm seem to be extremely sparse and none of the 
> examples I've seen so far illustrate how this situation should be 
> handled.
> 
> Can someone please provide me with some guidance as to what's 
> the 'best practice' here ?
> 
> Many thanks,
> 
> Jamie.
>


Reply via email to