/// <summary> /// Modifica il nodo selezionato. /// </summary> /// <param name="TreeView">L'albero dove cercare il nodo selezionato.</param></param> public TreeNode ModificaNodo(TreeView TreeView) { bool IsRadice = false; Componente CompVecchio = DistintaBase.TreeNodeToNode(TreeView.SelectedNode); if (TreeView.SelectedNode.Parent == null) { IsRadice = true; } Form2_NewNode Form2 = new Form2_NewNode(CompVecchio, TuttiComponenti(), IsRadice); Form2.ShowDialog(); Componente NewComp = Form2.Nodo; List <Componente> nodi = DistintaBase.Nodi(); NewComp = Componente.DeepClone(NewComp); if (NewComp == null) { return(null); } if (ControllaCodice(NewComp, CompVecchio, Componenti())) { if (nodi.Count == 1) { DistintaBase.Albero = NewComp; return(DistintaBase.NodeToTreeNode(DistintaBase.Albero)); } else { if (!(TreeView.SelectedNode.Parent == null)) { Componente CompPadre = DistintaBase.TreeNodeToNode(TreeView.SelectedNode.Parent); ModificaComponente(NewComp, CompVecchio, CompPadre, DistintaBase.Albero); } else { NewComp.SottoNodi = CompVecchio.SottoNodi; DistintaBase.Albero = NewComp; } } } else { MessageBox.Show("Il componente ha codice uguale a un componente presente nel programma sebbene non siano lo stesso componente.\nLe modifiche non verranno appliccate", "Distinta Base", MessageBoxButtons.OK, MessageBoxIcon.Error); return(null); } return(DistintaBase.NodeToTreeNode(NewComp)); }
/// <summary> /// Modifica il componente selezionato. /// </summary> /// <param name="Componente">Il componente da modificare.</param> /// <param name="Componenti">La lista di tutti i componenti.</param> /// <returns></returns> public Componente Modifica(Componente Componente, List <Componente> Componenti) { Form2_NewNode Form2 = new Form2_NewNode(Componente, Componenti, true); Form2.ShowDialog(); Componente ComponenteForm = Form2.Nodo; while (ComponenteForm == null) { if (!Form2.Attendo) { return(null); } } return(Componente.DeepClone <Componente>(ComponenteForm)); }
// Metodi Generali--------------------------------------------------------------- /// <summary> /// Apre la finestra di creazione della materia prima. Creata quest'ultima, ritorno il componente creato. /// </summary> /// <param name="Componenti">La lista di tutti i componenti.</param> /// <returns></returns> public Componente AggiungiMateriaPrima(List <Componente> Componenti, bool IsCatalogoOrRoot) { Form2_NewNode form2 = new Form2_NewNode(new Componente(), Componenti, IsCatalogoOrRoot); form2.ShowDialog(); Componente Componente = form2.Nodo; while (Componente == null) { if (!form2.Attendo) { return(null); } } return(Componente); }