Beispiel #1
0
            internal void ParentCleanup()
            {
                SortedTreeNodeSortedList myparentclonnedlist = (SortedTreeNodeSortedList)((ICloneable)ParentNodes).Clone();

                foreach (KeyValuePair <int, SortedTreeNode> kvpnode in myparentclonnedlist)
                {
                    if (MyParentTree.GetNode(kvpnode.Value.Value) == null)
                    {
                        //oznacza to ze dany node ma na swojej liscie tego parenta a drzewo juz nie ma, nalezy wiec go usunac:
                        ParentNodes.Remove(kvpnode.Key);
                    }
                }
                foreach (KeyValuePair <int, SortedTreeNode> kvpnode in mChildNodes)
                {
                    kvpnode.Value.ParentCleanup();
                }
            }
Beispiel #2
0
 /// <summary>
 /// Adds the this node to another tree.
 /// </summary>
 /// <param name="tree">The tree.</param>
 public void AddThisNodeToAnotherTree(ref SortedTree <T> tree)
 {
     if (ParentNodes.Count == 0)
     {
         tree.AddNode(Value);
     }
     else
     {
         foreach (KeyValuePair <int, SortedTreeNode> kvpnode in ParentNodes)
         {
             int ParentConnector = kvpnode.Value.GetConnectorNumberOfSpecifiedNode(this);
             //zanim dodamy nowy element musimy sprawdzic czy juz jest dodany jego parent
             if (tree.GetNode(kvpnode.Value.Value) != null)
             {
                 tree.AddNode(kvpnode.Value.Value, ParentConnector, Value, kvpnode.Key);
             }
         }
     }
 }