void OnExtensionChange (object s, ExtensionNodeEventArgs args)
{
if (args.Change == ExtensionChange.Add) {
if (args.ExtensionNode is CommandCodon)
RegisterCommand ((Command) args.ExtensionObject);
else
// It's a category node. Track changes in the category.
args.ExtensionNode.ExtensionNodeChanged += OnExtensionChange;
}
else {
if (args.ExtensionNode is CommandCodon)
UnregisterCommand ((Command)args.ExtensionObject);
else
args.ExtensionNode.ExtensionNodeChanged -= OnExtensionChange;
}
}