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.. >

