Try changing the bubbles property to true. The event needs to bubble
to the top so that the application sees it.





--- In [email protected], "Dan Vega" <danv...@...> wrote:
>
> For the file manager I am writing I am having an issue with
dispatching a
> custom event. I have a tree on the left with a custom tree item
renderer. In
> that renderer I have setup a context menu so the user can
rename/remove/add
> directories easily.
> 
>         private function renameDirectory(event:ContextMenuEvent):void {
>             _renamedir = new RenameDirectory
>             _renamedir.oldDirectoryName = data.name;
>             _renamedir.parentPath = data.parent;
>             //add modal window
> 
>
PopUpManager.addPopUp(_renamedir,DisplayObject(Application.application),true);
>             //center modal window
>             PopUpManager.centerPopUp(_renamedir);
>         }
> 
> My RenameDirectory component works well and does the renaming just
fine. The
> problem I am having is once the folder is renamed i need to refresh
the tree
> to show the changes. I figured for all of my options (add/remove/delete)
> would just dispatch a custom event. Here is my RenameDirectory.mxml
That is
> dispatching my custom event.
> 
> <?xml version="1.0" encoding="utf-8"?>
> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml";
layout="absolute"
> title="Rename Directory" width="300" height="125"
>     showCloseButton="true" creationComplete="centerWindow()"
> close="closeWindow()">
> 
>     <mx:Metadata>
>         [Event(name="refreshTree",type="events.RefreshTreeEvent")]
>     </mx:Metadata>
> 
>     <mx:Script>
>         <![CDATA[
>             import mx.rpc.remoting.mxml.RemoteObject;
>             import mx.controls.Alert;
>             import mx.managers.PopUpManager;
>             import events.RefreshTreeEvent;
> 
>             public var parentPath:String;
>             public var oldDirectoryName:String;
> 
>             private var ro:RemoteObject = new RemoteObject();
> 
>             private function centerWindow():void {
>                 PopUpManager.centerPopUp(this);
>             }
> 
>             private function closeWindow():void {
>                 PopUpManager.removePopUp(this);
>             }
>             private function renameDirectory(event:Event):void {
>                 var _old = parentPath + "\\" + oldDirectoryName;
>                 var _new = parentPath + "\\" + newDirectoryName.text;
>                 if(_new != _old) {
>                     // rename the directory
>                     ro.destination = "ColdFusion";
>                     ro.source = "FFManager.src.cfc.FileManager";
>                     ro.renameDirectory(_old,_new);
>                     ro.showBusyCursor = true;
> 
>                     dispatchEvent(new RefreshTreeEvent("refreshTree"));
>                     closeWindow();
>                 }
>             }
>        ]]>
> 
>     </mx:Script>
> 
>     <mx:HBox verticalCenter="0" horizontalCenter="0">
>         <mx:TextInput id="newDirectoryName" text="{oldDirectoryName}"
> width="200"/>
>         <mx:Button label="Save" click="renameDirectory(event)"/>
>     </mx:HBox>
> 
> </mx:TitleWindow>
> 
> And my custom event.
> package events {
> 
>     import flash.events.Event;
> 
>     public class RefreshTreeEvent extends Event {
> 
>         public static const REFRESH_TREE:String = "refreshTree";
> 
>         public function RefreshTreeEvent(type:String,
bubbles:Boolean=false,
> cancelable:Boolean=false) {
>             super(type, bubbles, cancelable);
>         }
> 
>     }
> }
> 
> 
> **************** The problem I am having is that I am unable to
listen for
> this event in my main application. If I add
> 
> this.addEventListener(RefreshTreeEvent.REFRESH_TREE,reloadTree);
> 
> The reloadTree method is never called. What am I doing wrong?
> 
> Thanks again..
>


Reply via email to