//------------------------------------------------- public void Notify(NodeNotification Notification_in) { // Notify on this node. if ((this._Listener != null)) { this._Listener.Notify(Notification_in); return; } if (Notification_in is NodeUpdateNotification) { this.Fire_NodeUpdate(new NodeUpdate_EventArgs((NodeUpdateNotification)Notification_in)); } else if (Notification_in is NodeClearChildrenNotification) { this.Fire_NodeClearChildren(new NodeClearChildren_EventArgs((NodeClearChildrenNotification)Notification_in)); } else if (Notification_in is NodeAddChildNotification) { this.Fire_NodeAddChild(new NodeAddChild_EventArgs((NodeAddChildNotification)Notification_in)); } else if (Notification_in is NodeRemoveChildNotification) { this.Fire_NodeRemoveChild(new NodeRemoveChild_EventArgs((NodeRemoveChildNotification)Notification_in)); } // Propogate notification upwards GenericNode <T> parent = this.ParentNode; if ((parent != null)) { parent.Notify(Notification_in); } return; }