void Repositionner() { //Placement des objectifs/sous-objectifs List <Lien> ListeLienSysteme = Acces.Remplir_ListeLienSYSTEME(Acces.type_OBJECTIF); //On balaye la liste des Objectifs //Si un lien existe, //on recherche la position des 2 objectifs //On déplace le fils sous le parent foreach (Lien p in ListeLienSysteme) { TreeNode[] Nod1 = lstObjectif.Nodes.Find(p.Element1_ID.ToString(), true); TreeNode[] Nod2 = lstObjectif.Nodes.Find(p.Element2_ID.ToString(), true); if (Nod1.Count() > 0 && Nod2.Count() > 0) { TreeNode parent = Nod1[0]; TreeNode Element = Nod2[0]; Element.Tag = p; //Element.Remove(); lstObjectif.Nodes.Remove(Element); parent.Nodes.Add(Element); } else { Console.Ajouter("[Move Objectif] Erreur Lien" + p.ID); } } }
/// <summary> /// Repositionnement des processus dans une hiérarchie /// </summary> void Repositionner(List <int> liste) { //Placement des objectifs/sous-objectifs List <Lien> ListeLienSysteme = Acces.Remplir_ListeLienSYSTEME(Acces.type_PROCESSUS); ListeLienSysteme.Sort(); //On balaye la liste des processus //Si un lien existe, //on recherche la position des 2 processus //On déplace le fils sous le parent foreach (Lien p in ListeLienSysteme) { TreeNode[] Nod1 = lstProcessus.Nodes.Find(p.Element1_ID.ToString(), true); TreeNode[] Nod2 = lstProcessus.Nodes.Find(p.Element2_ID.ToString(), true); if (Nod1.Count() > 0 && Nod2.Count() > 0) { TreeNode parent = Nod1[0]; TreeNode Element = Nod2[0]; if (parent.Name == Element.Name) { break; } Element.Tag = p; //Element.Remove(); lstProcessus.Nodes.Remove(Element); parent.Nodes.Add(Element); } else { if (p.Element0_ID > 0) { /*Console.Ajouter("[Move processus] Erreur Lien" + p.ID);*/ } else { if (p.Element0_Code.Length > 0) { Console.Ajouter("[Erreur Lien] Id : " + p.ID); } } } } }