package {
import flash.events.ContextMenuEvent;
import flash.ui.ContextMenu;
import flash.util.trace;
import mx.controls.listClasses.ListData;
import flash.ui.ContextMenuItem;
public class MyContextMenuManager
{
public var ContextMenuItems:Array = new Array( "I'm first!", "I'm second!" );
public function MyContextMenuManager(){}
public function BuildContextMenu():ContextMenu {
var gridMenu:ContextMenu = new ContextMenu();
gridMenu.hideBuiltInItems();
for( var x:Number=0; x<ContextMenuItems.length; x++ )
{
var item:ContextMenuItem = new ContextMenuItem(ContextMenuItems[x]);
item.addEventListener("menuItemSelect", MenuHandler, false);
gridMenu.customItems.push(item);
}
return gridMenu;
}
public function MenuHandler(event:ContextMenuEvent):void {
var target:Object = event.mouseTarget;
var selectedContextMenuItem:ContextMenuItem = event.target;
var selectedListRenderer:listRenderer;
if( ! (target is listRenderer) )
{
selectedListRenderer = target.parent.parent;
} else {
selectedListRenderer = listRenderer(event.mouseTarget);
}
var myListData :ListData = ListData(selectedListRenderer.listData);
var selectedRowIndex:Number = myListData.rowIndex;
trace( "The selected row index is: " + selectedRowIndex );
trace( "The selected rows label is: " + myListData.text);
trace( "The selected context menu item is: " + selectedContextMenuItem.caption + "\n" );
}
}
}