private void removeClassification(ITreeNode <IClassification> classificationNodeToRemove, bool recursive) { if (classificationNodeToRemove == null) { return; } if (recursive) { classificationNodeToRemove.NodesWithTags <IClassification>().Each(c => removeClassification(c, recursive: true)); } var project = _projectRetriever.CurrentProject; var classificationToBeRemoved = classificationNodeToRemove.Tag; _explorerPresenter.RemoveNode(classificationNodeToRemove); project.RemoveClassification(classificationToBeRemoved); // Promote all children nodes classificationNodeToRemove.NodesWithTags <IClassifiable>().Each(childNode => promoteNode(childNode, classificationNodeToRemove)); var parentNode = classificationNodeToRemove.ParentNode; if (parentNode != null) { parentNode.RemoveChild(classificationNodeToRemove); } classificationNodeToRemove.Delete(); }
private void removeNode(ITreeNode treeNode, bool deleteNode) { deleteTreeListNode(NodeFrom(treeNode)); treeNode.TextChanged -= nodeTextChanged; treeNode.IconChanged -= iconChanged; if (deleteNode) { treeNode.Delete(); } }
public void the_node_should_be_removed() { A.CallTo(() => _parentNode.Delete()).MustHaveHappened(); }