But where is the Binding mechanism taking place? What exactly do we bind? What 
is the most "bindable" solution?

Tracy Spratt <[EMAIL PROTECTED]> wrote:              A few problems:
  When you assign the result from the server to the xml model, it will 
overwrite the entire xml.  So you can’t bind the form elements to the dynamic 
model using binding braces.  I don’t think.  You might test that though.
  
  Then, selecting an item in a ComboBox does not automatically save the 
selectedItem to anything.  You will either need to manually update the 
appropriate xml element or attribute in a change handler function on the Combo, 
or as Douglas K. suggested, you can try using the Binding tag.  But since you 
are replacing the model with data from the server, I don’t think that will work.
  
  I’d go with a straight update of the xml from change event handlers.
  
      
---------------------------------
  
  From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of 
markgoldin_2000
Sent: Wednesday, January 02, 2008 1:58 PM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: Two way binding

  
        Just conceptually:

Model:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
<mx:XML id="accidentsGeneral" format="e4x">
<general>
<dateofaccident>{dateofaccident.text}
</dateofaccident>
<otherrailroadinvolved>
{otherrailroadinvolved.selectedItem.data}</otherrailroadinvolved>
<otherfilenumber>{dateofaccident.text}
</otherfilenumber>
<railroadrespfortrack>
{dateofaccident.selectedItem.data}</railroadrespfortrack>
</general>
</mx:XML>
</mx:Application>

Form:
....
xmlns:moduleCode="accidents.ModuleCode.*"
.....
<mx:Form x="218.5" y="0" width="450" height="606" 
borderStyle="outset" id="frmGeneral">
<mx:FormItem label="Date of Accident (dd/mm/yyyy)">
<mx:DateField 
dataProvider="{accidentsGeneral.dateofaccident}"
id="dateofaccident"/>
</mx:FormItem>
<mx:FormItem label="Other RailRoad Involved" 
width="356">
<mx:ComboBox 
dataProvider="{accidentsGeneral.otherrailroadinvolved}"
id="otherrailroadinvolved"></mx:ComboBox>
</mx:FormItem>
<mx:FormItem label="File Number">
<mx:TextInput 
text="{accidentsGeneral.otherfilenumber}" id="otherfilenumber" 
width="72"/>
</mx:FormItem>
<mx:FormItem label="RailRoad Responsible For Track">
<mx:ComboBox 
dataProvider="{accidentsGeneral.railroadrespfortrack}"
id="railroadrespfortrack"></mx:ComboBox>
</mx:FormItem>
.....
data assignment:
accidentsGeneral = event.result as XML;

--- In flexcoders@yahoogroups.com, "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> I can't understand what you have from your description. Post the
> relevant code snippets.
> 
> Tracy
> 
> 
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of mark goldin
> Sent: Wednesday, January 02, 2008 1:34 PM
> To: flexcoders@yahoogroups.com
> Subject: RE: [flexcoders] Re: Two way binding
> 
> 
> 
> Alright. Is the following correct: 
> 
> Inside of a model I have it nodes bound to form items. In the form I
> have it items bound to model's nodes, and xmlmodelvar = 
event.result as
> XML will pull data into the model as well as show int in the form's
> controls?
> 
> Tracy Spratt <[EMAIL PROTECTED]> wrote:
> 
> The simplest is to declare an instance variable typed as XML:
> 
> var _xmlEmployee:XML;
> 
> Then assign the event.result as XML in a result handler:
> 
> _xmlEmployee = event.result as XML;
> 
> If you want to use the declarative style, do:
> 
> <mx:XML id="xmlEmployee" />
> 
> And in the result handler, do:
> 
> xmlEmployee = event.result as XML;
> 
> Tracy
> 
> 
> 
> ________________________________
> 
> 
> From: flexcoders@yahoogroups.com
> [mailto:[EMAIL PROTECTED] On Behalf Of markgoldin_2000
> Sent: Wednesday, January 02, 2008 12:59 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Two way binding
> 
> Are you talking about something like this:
> <?xml version="1.0"?>
> <!-- Models\XMLBinding.mxml -->
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
> <http://www.adobe.com/2006/mxml> ">
> <mx:XML id="myEmployee" format="e4x">
> <employee>
> <name>
> <first>{firstName.text}</first>
> <last>{lastName.text}</last>
> </name>
> <department>{department.text}</department>
> <email>{email.text}</email>
> </employee>
> </mx:XML>
> <mx:TextInput id="firstName"/>
> <mx:TextInput id="lastName"/>
> <mx:TextInput id="department"/>
> <mx:TextInput id="email"/>
> </mx:Application>
> 
> If it is then how do I let data from the server into this 
model?
> 
> --- In flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> , "Tracy Spratt" <tspratt@>
> wrote:
> >
> > But don't use mx:Model, that creates the nested dynamic 
object
> 
> structure
> > I mentioned.
> > 
> > 
> > 
> > Use mx:XML, or use an instance variable typed as XML, and
> assign it 
> in a
> > result handler.
> > 
> > 
> > 
> > Tracy
> > 
> > 
> > 
> > ________________________________
> > 
> > From: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> [mailto:flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> ] On
> > Behalf Of mark goldin
> > Sent: Monday, December 31, 2007 1:18 PM
> > To: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > Subject: RE: [flexcoders] Two way binding
> > 
> > 
> > 
> > Let me make sure I understand.
> > 
> > You are talking about something like this:
> > 
> > 
> > 
> > <?xml version="1.0"?>
> > <!-- Models\ModelTagEmptyString.mxml -->
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml
> <http://www.adobe.com/2006/mxml> "
> > layout="absolute">
> > <mx:Model id="employeemodel" source="httpmodelsource">
> > </mx:Model> 
> > </mx:Application>
> > where httpmodelsource returns the following xml:
> > 
> > 
> > 
> > <employees>
> > <employee>
> > <name>John Doe</name>
> > <phone>555-777-66555</phone>
> > <email>jdoe@</email>
> > <active>true</active>
> > </employee>
> > <employee>
> > <name>Jane Doe</name>
> > <phone>555-777-66555</phone>
> > <email>jndoe@</email>
> > <active>true</active>
> > </employee>
> > </employees>
> > 
> > 
> > 
> > Tracy Spratt <tspratt@> wrote:
> > 
> > Simplicity. Less code. Maintainability. Standardization, 
> well
> > known API. 
> > 
> > Note that in the scenario I describe, the simplicity 
produces 
> a
> > dependency between the client data model and the data
> transport. If
> > someone changes the XML you are consuming, you will have to
> change 
> the
> > code. For some this is unacceptable and they require level 
of
> > abstraction between the transport and the model. It is just 
up
> to 
> your
> > particular requirements.
> > 
> > Tracy
> > 
> > 
> > 
> > ________________________________
> > 
> > 
> > From: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > [mailto:flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> ] On Behalf Of mark goldin
> > Sent: Monday, December 31, 2007 12:36 PM
> > To: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > Subject: RE: [flexcoders] Two way binding
> > 
> > Aha, I see. Why would you suggest am xml based model over a
> > class based one?
> > 
> > Tracy Spratt <tspratt@> wrote: 
> > 
> > By "dataModel", are you referring to the ShoppingCart
> > class you posted? You have to put the data into it. Get the
> data 
> from
> > the server, however you wish, and in the result handler,
> assign the 
> data
> > to an instance of the data model class, using the methods 
or 
> properties
> > it provides. Then bind the form elements to propeties in the
> model.
> > 
> > Now, I would suggest using an XML object instance as 
> the
> > data model. In the result handler, assign the result xml to 
an
> 
> instance
> > variable typed as XML. Then bind the form elements to that:
> > 
> > <mx:Text [EMAIL PROTECTED]
> > <mailto:[EMAIL PROTECTED]> ...?>
> > 
> > Tracy
> > 
> > 
> > 
> > ________________________________
> > 
> > 
> > From: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > [mailto:flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> ] On Behalf Of mark goldin
> > Sent: Monday, December 31, 2007 11:45 AM
> > To: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > Subject: RE: [flexcoders] Two way binding
> > 
> > I am probably a complete dumb. But dataModel does not
> > have dataProvider property. How do I pull data into model
> then?
> > 
> > Tracy Spratt <tspratt@> wrote: 
> > 
> > Or the short answer, the same way you got the
> > data into the dataProvider for the DataGrid.
> > 
> > Tracy
> > 
> > 
> > 
> > ________________________________
> > 
> > 
> > From: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > [mailto:flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> ] On Behalf Of Douglas Knudsen
> > Sent: Monday, December 31, 2007 10:22 AM
> > To: flexcoders@yahoogroups.com
> <mailto:flexcoders%40yahoogroups.com> 
> > Subject: Re: [flexcoders] Two way binding
> > 
> > That's a wholly different thread. You would 
> use
> > WebService, HTTPservice, or RemoteObject to perform some 
sort
> of 
> server
> > call. Take a look at the docs on these tags and also at the 
> examples on
> > Adobe.com <http://adobe.com/ <http://adobe.com/> > . For a
> ColdFusion based example, 
> you can
> > check this out
> > 
> >
> http://www.acfug.org/index.cfm?fa=meetings.meetingdetail&EventID=177
> <http://www.acfug.org/index.cfm?
fa=meetings.meetingdetail&EventID=177> 
> > <http://www.acfug.org/index.cfm?
> <http://www.acfug.org/index.cfm?> 
> fa=meetings.meetingdetail&EventID=177> 
> > 
> > DK
> > 
> > On Dec 31, 2007 10:14 AM, mark goldin
> > <markgoldin_2000@ <mailto:markgoldin_2000@> > wrote:
> > 
> > And how data from server gets into the Model?
> > 
> > 
> > 
> > Douglas Knudsen <douglasknudsen@
> > <mailto:douglasknudsen@> > wrote: 
> > 
> > What's wrong with this?
> > <mx:TextInput text="{
> > someReferenceToAModel.property }" />
> > 
> > Now, you can use the Binding tag to 
> bind
> > the value in the above back to the source, your datagrid in
> this 
> case,
> > but its not really a good idea, though YMMV. 
> > 
> > DK
> > 
> > On Dec 31, 2007 9:33 AM, 
> markgoldin_2000
> > <markgoldin_2000@ <mailto:markgoldin_2000@> > wrote:
> > 
> > I am trying to figure out what both 
> ways
> > of data binding are.
> > Basically we have two subjects for 
> data
> > binding: DataGrid and a Form. 
> > With DataGrid it is pretty clear:
> > dataProvider. But with form? It 
> > does not have such a dataProvider
> > property (Which is in my opinion it 
> > should have). So, what's a solution 
> for
> > that? DataModel? Which it 
> > turn does not have dataProvider 
> either.
> > But it does have a source. 
> > Source of what? Data? Ok, let's stick 
> to
> > dataModel. But then I am 
> > reading that it's better to use
> > class-based models. Here is an 
> > example of class-based model form 
> Help:
> > package
> > {
> > 
> > [Bindable]
> > public class ShoppingCart {
> > public var items:Array = [];
> > 
> > public var total:Number = 0;
> > 
> > public var shippingCost:Number = 0;
> > 
> > public function ShoppingCart() {
> > }
> > 
> > public function addItem(item:Object,
> > qty:int = 1,
> > index:int = 0):void {
> > items.splice(index, 0, { id: item.id
> > <http://item.id/ <http://item.id/> > ,
> > name: item.name <http://item.name/ <http://item.name/> > ,
> > description: item.description,
> > image: item.image,
> > price: item.price,
> > qty: qty });
> > total += parseFloat(item.price) * qty;
> > }
> > 
> > public function
> > removeItemAt(index:Number):void {
> > total -= parseFloat(items
> [index].price)
> > * items[index].qty; 
> > items.splice(index, 1);
> > if (getItemCount() == 0)
> > shippingCost = 0;
> > }
> > 
> > public function getItemCount():int {
> > return items.length;
> > }
> > 
> > public function getTotal():Number {
> > return total;
> > }
> > }
> > }
> > 
> > Two questions:
> > 1. How the data is getting into a
> > picture here?
> > 2. How am I using this model in my 
> mxml
> > file?
> > 
> > Sorry if I am asking something 
> obvious,
> > but I am just having problem 
> > understanding why data-centric
> > environment does not have a straight 
> > way of binding data both ways. All I
> > would want is to assign a data 
> > source to my form and then specify 
> data
> > fields for each control in 
> > the form. Simple as this. Is this
> > possible in Flex? 
> > 
> > Thanks
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > -- 
> > Douglas Knudsen
> > http://www.cubicleman.com <http://www.cubicleman.com/> 
> > <http://www.cubicleman.com/ <http://www.cubicleman.com/> > 
> > this is my signature, like it? 
> > 
> > 
> > 
> > 
> > -- 
> > Douglas Knudsen
> > http://www.cubicleman.com <http://www.cubicleman.com/> 
> > <http://www.cubicleman.com/ <http://www.cubicleman.com/> > 
> > this is my signature, like it?
> >
>

  



  

                         

Reply via email to