There's a way to enable/disable menu items through javascript.
You can see it in Demo_Office2003.aspx in HandleContextMenuPopup javascript function that defines Expand and Collapse state depending on context node state.
...
function HandleContextMenuPopup(sender, node, event) {
var nodeContextMenuID = node.getContextMenuID();
if (node.getContextMenuID().length == 0) return;
var expandEnabled = node.getChildNodes().length > 0 && !node.getExpanded();
var collapseEnabled = node.getChildNodes().length > 0 && node.getExpanded();
var contextMenu = CFlyContextMenu.getInstanceById(\"\");
var items = contextMenu.getItems();
for(var i = 0; i < items.length; i++) {
switch(items[i].getCommandName()) {
case \"Expand\":
items[i].setDisabled(!expandEnabled);
break;
case \"Collapse\":
items[i].setDisabled(!collapseEnabled);
break;
}
}
}
Same way you can test whether context node is selected and enable/disable required menu items.