Example #1
0
        public bool Contains(T possibleChild)
        {
            IDirectedGraphNode <T> tn = possibleChild as IDirectedGraphNode <T>;

            if (tn == null)
            {
                tn = new DirectedGraphNode <T>(possibleChild);
            }
            return(ContainsNode(tn));
        }
Example #2
0
 public IDirectedGraphNode <T> AddNode(IDirectedGraphNode <T> dgn)
 {
     if (!m_members.Contains(dgn))
     {
         m_members.Add(dgn);
         if (OnGainedMembership != null)
         {
             OnGainedMembership(m_parent);
         }
     }
     return(dgn);
 }
Example #3
0
        /// <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));
        }
Example #4
0
 /// <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);
     }
 }
Example #5
0
 public bool ContainsNode(IDirectedGraphNode <T> possibleChildNode)
 {
     return(m_members.Contains(possibleChildNode));
 }