private void creaAlbero()
        {
            if (_distinta == null)
            {
                return;
            }
            tvDiBa.Nodes.Clear();
            if (_distinta.Componenti.Count() == 0)
            {
                tvDiBa.Nodes.Add(creaNodo(null));
            }
            else
            {
                ComponenteBC componenteBase = _distinta.Componenti.Where(x => x.IdPadre == string.Empty).FirstOrDefault();
                if (componenteBase == null)
                {
                    return;
                }

                string   etichettaNodo = componenteBase.CreaEtichetta();
                TreeNode radice        = new TreeNode(etichettaNodo);
                radice.Tag = componenteBase;
                tvDiBa.Nodes.Add(radice);
                aggiungiNodoEsistente(componenteBase.Anagrafica, radice, componenteBase.IdComponente);
            }
            tvDiBa.ExpandAll();
        }
        private bool trovaNodo(TreeNode nodoPadre, string anagrafica, out TreeNode nodoTrovato)
        {
            nodoTrovato = null;
            if (nodoPadre.Tag == null)
            {
                return(false);
            }
            ComponenteBC componente = (ComponenteBC)nodoPadre.Tag;

            if (componente == null)
            {
                return(false);
            }
            if (componente.Anagrafica == anagrafica)
            {
                nodoTrovato = nodoPadre;
                return(true);
            }

            foreach (TreeNode n in nodoPadre.Nodes)
            {
                bool esito = trovaNodo(n, anagrafica, out nodoTrovato);
                if (esito)
                {
                    return(true);
                }
            }

            return(false);
        }
        private void tvDiBa_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            if (e.Node.Tag == null)
            {
                return;
            }

            ComponenteBC componente = (ComponenteBC)e.Node.Tag;

            foreach (DataGridViewRow riga in dgvComponenti.Rows)
            {
                string anagrafica   = (string)riga.Cells[clmAnagraficaComponente.Index].Value;
                int    idComponente = (int)riga.Cells[clmIdComponenteComponente.Index].Value;

                //                if (anagrafica == componente.Anagrafica)
                if (idComponente == componente.IdComponente)
                {
                    riga.DefaultCellStyle.BackColor = Color.Yellow;
                }
                else
                {
                    riga.DefaultCellStyle.BackColor = Color.White;
                }
            }
            PopolaGrigliaFasi(componente);
        }
        private TreeNode creaNodo(TreeNode nodoPadre)
        {
            ComponenteBC componentePadre = null;

            if (nodoPadre != null && nodoPadre.Tag != null)
            {
                componentePadre = (ComponenteBC)nodoPadre.Tag;
            }

            ComponenteBC componente = new ComponenteBC();

            componente.CollegamentoDiBa = ExpCicloBusinessCentral.CodiceCollegamentoStandard;
            if (componentePadre != null)
            {
                componente.IdPadre = componentePadre.Anagrafica;
            }
            componente.Quantita   = 1;
            componente.UMQuantita = "NR";
            string   etichettaNodo = componente.Anagrafica;
            TreeNode nodo          = new TreeNode(etichettaNodo);

            nodo.Tag = componente;
            _distinta.Componenti.Add(componente);
            return(nodo);
        }
        private void PopolaGrigliaFasi(ComponenteBC componente)
        {
            if (componente == null)
            {
                dgvFasiCiclo.DataSource = null;
                return;
            }
            dgvFasiCiclo.AutoGenerateColumns = false;
            if (componente.FasiCiclo == null)
            {
                componente.FasiCiclo = new List <FaseCicloBC>();
            }

            BindingList <FaseCicloBC> bindingList = new BindingList <FaseCicloBC>(componente.FasiCiclo);

            sourceFasiCicli         = new BindingSource(bindingList, null);
            dgvFasiCiclo.DataSource = sourceFasiCicli;
            dgvFasiCiclo.Update();
        }