that makes sense. it's the passing of the ML reference that I am
having trouble with. I would love to be able to pass the location on
the ModelLocator that needs updating through a property like this:
source="model.someObject.currentObject.name"
and then be able to use that in the Command to update that
ModelLocator once a value is receieved from the server, but I don't
really know how to reference and object from a string. How would I
turn the string "model.someObject.currentObject.name" into an Object
in the command? It get's even more complicated if the value is
nested inside an ArrayCollection. How do you pass
"model.someArray.getItemAt(currentIndex).name" as a reference to a
location on the modelLocator.
updating the database is easy. All you need is a table name & fld
name. By since VO objects are much more 3D and can be nested in all
sorts of ways it is hard to pass references through properties....
Thanks, Kevin
On Mar 13, 2007, at 7:35 AM, Sean Sell wrote:
Is this a Cairngorm app?
If so the way I accomplish this is that the "focusOut view event"
dispatches a Cairngorm "userEdit event" which has both the property
and value embedded in it. The FrontController passes this event to
the command the command instance makes local copies of the values
and then can do what ever it needs to in the result handler. Does
that make sense?
--Sean
----- Original Message ----
From: Kevin <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Tuesday, March 13, 2007 2:17:12 AM
Subject: [flexcoders] Pass ModelLocator reference to Command?
Here is where I am struggling. I have created a component extended
from the TextInput field to update certain fields in my database.
The text property of the TextInput class is bound to a value form the
ModelLocator. When this value is changed (focusOut event) a general
command is sent to the database with an id that indicates which
database field should be updated. The update happens and a 'success'
result is returned to the Command. The idea is that fields are
updated as the user tabs rather than using a 'submit' button.
Everything is working well up to this point, until....
On a successful database update, I can't figure out a way to update
the modelLocator from the Command. Since this is a generic Command I
need to be able to dynamically tell the Command which ModelLocator
property to update on which call. Here are the solutions I have
thought of but I can't seem to get anything working.
1) Pass a reference to the ModelLocator property that needs updating
and then update that reference in the Command. Unfortunately, I
can't figure out how (and if I even can) pass a true reference to the
Command. It seems that everything I try just get passed as a string.
2) Pass a string to the Command that can be parsed into a ML
reference. This can work...sometimes on simple VO's, but gets very
complicated with nest VO's in ArrayCollections. I am not sure there
is an easy way to do this...
3) Create some sort of hash map or array map that maps certain
'codes' to ModelLocator properties. This seems rather brittle & time
consuming.
4) Create 2-way binding using the Binding class. I was able to do
this and make it work, however, I couldn't find a way to do it
dynamically, where the 'destination' property could be a variable and
not a string. Also, I could only set this while in the view, which
means, the ModelLocator would get updated before it was confirmed
that the server update was successful. Obviously this is a little
dangerous.
I am out of ideas, but I still think there must be a way to achieve
this. Any thoughts???
Thanks for the help,
Kevin
Don't be flakey. Get Yahoo! Mail for Mobile and
always stay connected to friends.