public bool Contains(T possibleChild) { IDirectedGraphNode <T> tn = possibleChild as IDirectedGraphNode <T>; if (tn == null) { tn = new DirectedGraphNode <T>(possibleChild); } return(ContainsNode(tn)); }
public IDirectedGraphNode <T> AddNode(IDirectedGraphNode <T> dgn) { if (!m_members.Contains(dgn)) { m_members.Add(dgn); if (OnGainedMembership != null) { OnGainedMembership(m_parent); } } return(dgn); }
/// <summary> /// Adds the specified new member to this collection. /// </summary> /// <param name="newMember">The new member.</param> /// <returns>The DirectedGraphNode that resulted from this addition - either the node to be added, or its DirectedGraphNode wrapper.</returns> public IDirectedGraphNode <T> Add(T newMember) { // If necessary, create a DirectedGraphNode wrapper. IDirectedGraphNode <T> tn = newMember as IDirectedGraphNode <T>; if (tn == null) { tn = new DirectedGraphNode <T>(newMember); } return(AddNode(tn)); }
/// <summary> /// Removes the specified existing member from this collection. /// </summary> /// <param name="existingChild">The existing member.</param> /// <returns>True if the removal was successful, otherwise, false.</returns> public bool Remove(IDirectedGraphNode <T> existingMember) { if (m_members.Remove(existingChild)) { m_parent.Root.MyEventController.OnSubtreeChanged(SubtreeChangeType.GainedNode, existingChild); m_parent.MyEventController.OnLostChild(existingChild); existingChild.MyEventController.OnLostParent(m_parent); return(true); } else { return(false); } }
public bool ContainsNode(IDirectedGraphNode <T> possibleChildNode) { return(m_members.Contains(possibleChildNode)); }