That's because assignation doesn't automatically bind xmlObj to SingletonXML
data object, so changes at data doesn't reflect on xmlObj.
You must declare an explicit bound between xmlObj and
SingletonXML.getInstance().data, like this:

<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml";
 creationComplete="init()">
 <mx:Script>
        <![CDATA[
            import mx.collections.XMLListCollection;
            import Components.SingletonXML;
            import mx.controls.Alert;

      [Bindable]
         private var xmlObj:XMLList;
         private function init():void{
             xmlObj=SingletonXML.getInstance().data;
             this.dataProvider=xmlObj;
             this.labelField="@name"
         }

        ]]>
    </mx:Script>
* <mx:Binding source="SingletonXML.getInstance().data"
destination="this.xmlObj" />
*</mx:ComboBox>



Best regards.
Andrea






On Thu, Nov 5, 2009 at 1:40 PM, Kiran Kumar Vasireddy
<kiranv...@gmail.com>wrote:

> Thanks a lot Andrea. That is working fine . But again have a question.
> Following is the exact replica of the combox what ever you added to the
> application . If I add this to the application it is not working . Could you
> please shed some light on this?
>
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:ComboBox xmlns:mx="http://www.adobe.com/2006/mxml";
> creationComplete="init()">
>     <mx:Script>
>         <![CDATA[
>             import mx.collections.XMLListCollection;
>             import Components.SingletonXML;
>             import mx.controls.Alert;
>
>     [Bindable]
>         private var xmlObj:XMLList;
>
>         private function init():void{
>             xmlObj=SingletonXML.getInstance().data;
>             this.dataProvider=xmlObj;
>             this.labelField="@name"
>         }
>
>         ]]>
>     </mx:Script>
>
> </mx:ComboBox>
>
>
> On Thu, Nov 5, 2009 at 10:27 AM, Andrea Giorgetta <
> andreagiorge...@gmail.com> wrote:
>
>> I agree with Vaibhav, you should use Cairngorm because it's a great
>> framework that simplifies many repetitive tasks and "forces" the developer
>> to create a better class model.
>> For this particular problem, it is not necesary, this
>> "Kindof-ModelLocator-Singleton-Pattern" can be implemented anyway.
>> Solved it by changing:
>>
>>    1. [Bindable] to full SingletonXML class. Sorry I miss that one in the
>>    first example.
>>    2. private var _data: ...  to public var data, and remove the getter.
>>    Not sure why's that... :S
>>
>> Attached my test code.
>>
>> Hope this works.
>> Andrea
>>
>>
>>
>>
>>
>> On Thu, Nov 5, 2009 at 11:51 AM, Kiran Kumar Vasireddy <
>> kiranv...@gmail.com> wrote:
>>
>>> Hi Dinukx,
>>>
>>> Thanks for your response and Could you please help me on IResponder
>>> interface ? I googled but no use
>>>
>>>
>>> Hi Andrea,
>>>
>>> Following is the format of XML data data we received .I just took the
>>> format from the XML and changed the names . Data we received is about 3 MB
>>> file and it is live data. Country,State,City and Student tags are repeated
>>>
>>>
>>> <Edu >
>>>     <Country name="United States" code="US">
>>>         <State name="Michigan" code="MI">
>>>             <City name="Auburn Hills">
>>>                 <Student name="Kiran " />
>>>                 <Student name = "Abhijith" />
>>>             </City>
>>>         </State>
>>>        <State name="Ohio" code="OH">
>>>             <City name="Coshocton">
>>>                 <Student name="Andrea" />
>>>                 <Student name = "John" />
>>>             </City>
>>>         </State>
>>>     </Country>
>>> </Edu>
>>>
>>> Regards
>>> Kiran
>>>
>>>
>>>
>>> On Wed, Nov 4, 2009 at 11:53 PM, flexorz group of flex corders <
>>> flexco...@gmail.com> wrote:
>>>
>>>> i think  Vaibhav solution should work ,but you have to update the model
>>>> from the command it self. (try to look in to more Cairngorm solutions). 
>>>> only
>>>> putting [binding] tag wont do the trick :)
>>>>
>>>> the second option should be using and responder.(you may need to
>>>> implement IResponder interface)
>>>>
>>>> where you can create the asynchronous call and wait until the result is
>>>> passed back to the result function or falut.
>>>>
>>>> actually thats how even cairngrom works.
>>>>
>>>> let me know if you need any help on that.
>>>>
>>>> thanks
>>>> dinukx
>>>>
>>>>
>>>>
>>>> let me know if you need help with responder
>>>>
>>>> Dinukx;
>>>>
>>>> POC :
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On Thu, Nov 5, 2009 at 1:08 AM, Kiran Kumar Vasireddy <
>>>> kiranv...@gmail.com> wrote:
>>>>
>>>>> Hi Vaibhav,
>>>>>
>>>>> Sorry no use ,still not working .
>>>>>
>>>>> Regards
>>>>> Kiran
>>>>>
>>>>>
>>>>> On Wed, Nov 4, 2009 at 12:38 PM, Vaibhav Seth <
>>>>> seth.vaibhav...@gmail.com> wrote:
>>>>>
>>>>>> To avoid such kind of issues, better use Cairngorm.
>>>>>> I doubt the problem is Binding. You have to bind data with the
>>>>>> dataprovider of your component. So that, whenever your data will get
>>>>>> populated it will be reflected in the component. Try using:
>>>>>>                   [Bindable]private var _data:XMLList;
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 4, 2009 at 11:59 AM, Kiran Kumar Vasireddy <
>>>>>> kiranv...@gmail.com> wrote:
>>>>>>
>>>>>>> Thanks Vaibhav and Andrea for your suggestions.
>>>>>>>
>>>>>>> Andrea : You suggestion looks working , But got in one more problem .
>>>>>>> Could you please help me ?
>>>>>>>
>>>>>>> If I call SingletonXML.getInstance().data; It is returning Null
>>>>>>> because the of getResult() is returning the data later . Since the 
>>>>>>> calls are
>>>>>>> asynchronous get Data() is getting called first and then getResult().
>>>>>>>
>>>>>>> I checked the event data and data is there in the event .
>>>>>>>
>>>>>>> I came into this problem because of "<XML source = "is crashing my
>>>>>>> IE7, Otherwise I could have done it using XML tag instead HTTPService ( 
>>>>>>> for
>>>>>>> local data I am using HTTPService ) . Please see the code below.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> package Components
>>>>>>> {
>>>>>>>     import mx.controls.Alert;
>>>>>>>     import mx.rpc.events.ResultEvent;
>>>>>>>     import mx.rpc.http.HTTPService;
>>>>>>>
>>>>>>>
>>>>>>>             public class SingletonXML
>>>>>>>         {
>>>>>>>               private static var _instance: SingletonXML;
>>>>>>>               private var _data:XMLList;
>>>>>>>
>>>>>>>               public function SingletonXML() {
>>>>>>>
>>>>>>>                     if (_instance != null)
>>>>>>>                           trace("Constructor shouldn't be called
>>>>>>> directly... now I'll have to kill you")
>>>>>>>                     _instance = this;
>>>>>>>                     this.initData();
>>>>>>>               }
>>>>>>>
>>>>>>>               private function initData():void {
>>>>>>>                     var service:HTTPService =new HTTPService();
>>>>>>>                     service.url="Components/StudentData.xml";
>>>>>>>                     service.resultFormat="e4x";
>>>>>>>                     service.addEventListener("result", getResult);
>>>>>>>                     service.send();
>>>>>>>
>>>>>>>              }
>>>>>>>               private function onDataLoaded():void {
>>>>>>>
>>>>>>>                       //Store data
>>>>>>>                       //this._data = [loaded data];
>>>>>>>
>>>>>>>               }
>>>>>>>
>>>>>>>               private function getResult(event:ResultEvent):void{
>>>>>>>               Alert.show("this is in get result");
>>>>>>>
>>>>>>>                   _data=XMLList(event.result.Country);
>>>>>>>
>>>>>>>               }
>>>>>>>
>>>>>>>               public static function getInstance():SingletonXML{
>>>>>>>                     if (! _instance)
>>>>>>>                           _instance = new SingletonXML();
>>>>>>>
>>>>>>>                     return _instance;
>>>>>>>               }
>>>>>>>
>>>>>>>               public function get data():XMLList {
>>>>>>>                   Alert.show("this is in get data");
>>>>>>>                     return this._data;
>>>>>>>
>>>>>>>
>>>>>>>               }
>>>>>>>         }
>>>>>>> }
>>>>>>>
>>>>>>> On Tue, Nov 3, 2009 at 4:38 PM, Andrea Giorgetta <
>>>>>>> andreagiorge...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Hi Kiran.
>>>>>>>> I think you should create a "ModelLocator" singleton class, that
>>>>>>>> gets and store the xml information. It would be something like this:
>>>>>>>>
>>>>>>>> public class MyModelLocator
>>>>>>>> {
>>>>>>>>       private static var _instance: MyModelLocator;
>>>>>>>>       private var _data:XMLList;
>>>>>>>>
>>>>>>>>       public function MyModelLocator() {
>>>>>>>>             if (_instance != null)
>>>>>>>>                   trace("Constructor shouldn't be called directly...
>>>>>>>> now I'll have to kill you")
>>>>>>>>             _instance = this;
>>>>>>>>             this.initData();
>>>>>>>>       }
>>>>>>>>
>>>>>>>>       private function initData():void {
>>>>>>>>              //Load data....
>>>>>>>>       }
>>>>>>>>       private function onDataLoaded() {
>>>>>>>>               //Store data
>>>>>>>>               this._data = [loaded data];
>>>>>>>>       }
>>>>>>>>
>>>>>>>>       public static function getInstance():MyModelLocator{
>>>>>>>>             if (! _instance)
>>>>>>>>                   _instance = new MyModelLocator();
>>>>>>>>             return _instance;
>>>>>>>>       }
>>>>>>>>
>>>>>>>>       public function get data():XMLList {
>>>>>>>>             return this._data;
>>>>>>>>       }
>>>>>>>> }
>>>>>>>>
>>>>>>>> In order to get data in each combobox, you would set
>>>>>>>> dataprovider="{MyModelLocator.getInstance.data}" (if that XMLList 
>>>>>>>> already
>>>>>>>> has the correct structure to be directly used as a dataprovider in the
>>>>>>>> combobox... otherwise now is the time to change it ;) )
>>>>>>>> This way:
>>>>>>>>  - There's only one instance of MyModelLocator at anytime, anywhere.
>>>>>>>>  - initData is called only once, so the data is retrieved only once.
>>>>>>>>  - By storing the data within the singleton class, it's available to
>>>>>>>> the whole application by just importing the class.
>>>>>>>>
>>>>>>>>
>>>>>>>> Hope it solves your issue.
>>>>>>>> Best regards
>>>>>>>> Andrea.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>  On Tue, Nov 3, 2009 at 5:59 PM, Kiran Kumar Vasireddy <
>>>>>>>> kiranv...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>>  Hi ,
>>>>>>>>>
>>>>>>>>> I am calling httpservice.send() method and getting the data and
>>>>>>>>> populating it in XMLList . I want this step to be done only once and 
>>>>>>>>> want to
>>>>>>>>> reuse the data what ever I got .
>>>>>>>>> My scenario is like this
>>>>>>>>>
>>>>>>>>> 1)Creating Custom combobox component
>>>>>>>>> 2) Calling send() in the custom component and populating the
>>>>>>>>> combobox
>>>>>>>>>
>>>>>>>>> I want to create around 5 instances of the above component . But
>>>>>>>>> what is happening is the send() is getting called again and again . 
>>>>>>>>> Is there
>>>>>>>>> any way to restrict this and get the data only once and use it for my 
>>>>>>>>> 5
>>>>>>>>> instances . The problem here is If I use http send() method when I 
>>>>>>>>> load the
>>>>>>>>> application , This works perfect . But we want that to be called only 
>>>>>>>>> from
>>>>>>>>> component and want to use the same component again and again.
>>>>>>>>>
>>>>>>>>> Thanks for your help
>>>>>>>>> Kiran
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks,
>>>>>> Vaibhav Seth.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Flex 
India Community" group.
To post to this group, send email to flex_india@googlegroups.com
To unsubscribe from this group, send email to 
flex_india+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/flex_india?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to