Решил проблему.
1. Пишем свой итемрендерер.
2. Отлавливаем маусовер и записываем в какею-либо переменную дерева данный элемент.
3. В дереве при вызове контекстного меню проверяем эту переменную
Код итемрендерера:

Код:
package CellRenderers.Classes
{
import mx.controls.treeClasses.*;
import mx.collections.*;
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem;
import flash.ui.ContextMenuBuiltInItems;
import flash.events.ContextMenuEvent;
import flash.events.ContextMenuEvent;
import flash.events.MouseEvent;
import editor.ETree;
public class ETreeItemRenderer extends TreeItemRenderer
{
public function ETreeItemRenderer()
{
super();
this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverEvent);
}
public function mouseOverEvent(event:MouseEvent):void
{
var myListData:TreeListData = TreeListData(listData);
var eTree:ETree = ETree(this.listData.owner);
eTree.setOverItem(myListData);
}
}
}
]
Обработка в дереве:

Код:
public class ETree extends Tree
{
...
public var overItem:TreeListData;
...
public function treeContextMenuEvent(event:ContextMenuEvent):void
{
selectedItem = overItem.item;
//If toplevel category then disable first menu item
if (TreeListData(overItem).depth==1)
{
contextMenu.customItems[0].enabled = false;
}
}
}