public void ConnectChildrenToParent(Tag tag) { foreach (var child in tag.Children) { ConnectTags(tag, child); } }
public void Remove(Tag tag, RemoveType type) { if (tag.Parent == null) { return; } if (type == RemoveType.ConnectRelatedChildrenToParent) { ConnectChildrenToParent(tag); } else { RemoveChildren(tag); } RemoveFromDictonary(tag); OnTagRemoved(tag); DisconnectFromParent(tag); }
public void OnTagRemoved(Tag tag) { if (TagRemoved != null) { TagRemoved(this, tag); } }
public void DisconnectFromParent(Tag tag) { tag.Parent.Children.Remove(tag); tag.Parent = null; }
public void ConnectTags(Tag parent, Tag child) { parent.Children.Add(child); child.Parent = parent; }
public void Add(Tag tag) { _tagDictionary.Add(tag.Id, tag); }
private void RemoveFromDictonary(Tag tag) { _tagDictionary.Remove(tag.Id); }
public void RemoveChildren(Tag tag) { foreach(var child in tag.Children) { RemoveFromDictonary(tag); RemoveChildren(child); OnTagRemoved(tag); } tag.Children.Clear(); }