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();
        }
Ejemplo n.º 2
0
 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();
 }