How to pass and retrieve values to/from popup window in Flex?

Kishor Kumar picture Kishor Kumar · Aug 10, 2011 · Viewed 8.6k times · Source

I want to send some text value to my custom popup window when it pops up from main application which is having some text input and also I want to know how to retrieve data(of text input) which entered by a user in popup window. Any help is appreciated.

Answer

Jarno Lahtinen picture Jarno Lahtinen · Aug 10, 2011

You can access popUp data using setter as example shows. Or make a popUp component as a global in your main application so you can refer component properties globally.

<!-- TitleWindow.mxml -->
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="600" title="" height="160">

<fx:Script>
       <![CDATA[            

           public function get UserTypedData():String
           {
                return tiSomeText.text;
           }
    ]]>
</fx:Script>

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<mx:TextInput id="tiSomeText" x="76" y="101"/>

<!-- Application.mxml -->
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="100%" >

<fx:Script>
    <![CDATA[                           
                public var popup:YourPopupWindow;

                private function createPopUp():void
                {
                    popup = YourPopupWindow(PopUpManager.createPopUp(this, YourPopupWindow, false));
                }

                private function getPopUpData():String
                {
                    var retVal:String = "";

                    if (popUp != null)
                    {
                        // get data from setter
                        retVal = popUp.UserTypedData();
                        // of from TextInput
                        retVal = popUp.tiSomeText.text;
                    }

                    return retVal;   
                }

    ]]>
</fx:Script>
</mx:Application>