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: [email protected]
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



    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;
}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;
}
#ygrp-vitnav{
padding-top:10px;
font-family:Verdana;
font-size:77%;
margin:0;
}
#ygrp-vitnav a{
padding:0 1px;
}
#ygrp-actbar{
clear:both;
margin:25px 0;
white-space:nowrap;
color:#666;
text-align:right;
}
#ygrp-actbar .left{
float:left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;
font-size:77%;
padding:15px 0;
}
#ygrp-ft{
font-family:verdana;
font-size:77%;
border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;
}

#ygrp-vital{
background-color:#e0ecee;
margin-bottom:20px;
padding:2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size:77%;
font-family:Verdana;
font-weight:bold;
color:#333;
text-transform:uppercase;
}
#ygrp-vital ul{
padding:0;
margin:2px 0;
}
#ygrp-vital ul li{
list-style-type:none;
clear:both;
border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;
color:#ff7900;
float:right;
width:2em;
text-align:right;
padding-right:.5em;
}
#ygrp-vital ul li .cat{
font-weight:bold;
}
#ygrp-vital a {
text-decoration:none;
}

#ygrp-vital a:hover{
text-decoration:underline;
}

#ygrp-sponsor #hd{
color:#999;
font-size:77%;
}
#ygrp-sponsor #ov{
padding:6px 13px;
background-color:#e0ecee;
margin-bottom:20px;
}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;
margin:0;
}
#ygrp-sponsor #ov li{
list-style-type:square;
padding:6px 0;
font-size:77%;
}
#ygrp-sponsor #ov li a{
text-decoration:none;
font-size:130%;
}
#ygrp-sponsor #nc {
background-color:#eee;
margin-bottom:20px;
padding:0 8px;
}
#ygrp-sponsor .ad{
padding:8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family:Arial;
font-weight:bold;
color:#628c2a;
font-size:100%;
line-height:122%;
}
#ygrp-sponsor .ad a{
text-decoration:none;
}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;
}
#ygrp-sponsor .ad p{
margin:0;
}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;
}
#ygrp-text tt{
font-size:120%;
}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->








 
____________________________________________________________________________________
Never miss an email again!
Yahoo! Toolbar alerts you the instant new Mail arrives.
http://tools.search.yahoo.com/toolbar/features/mail/

Reply via email to