示例#1
0
        public static List <CObjetDonneeAIdNumerique> GetSelectionInListe(CListeObjetsDonnees elementsPossibles, List <CObjetDonneeAIdNumerique> elementsPreSelectionnes, bool bAucunElementAutorise)
        {
            List <CObjetDonneeAIdNumerique> objSelecSAV = new List <CObjetDonneeAIdNumerique>();

            if (elementsPossibles.Count == 0)
            {
                foreach (CObjetDonneeAIdNumerique o in elementsPossibles)
                {
                    objSelecSAV.Add(o);
                }
                return(objSelecSAV);
            }


            for (int i = 0; i < elementsPreSelectionnes.Count; i++)
            {
                if (elementsPossibles.Contains(elementsPreSelectionnes[i]))
                {
                    objSelecSAV.Add(elementsPreSelectionnes[i]);
                }
            }

            CFormFloatSelectInListe frm = new CFormFloatSelectInListe();

            frm.Initialiser(elementsPossibles, elementsPreSelectionnes, bAucunElementAutorise);
            frm.Location = Cursor.Position;
            if (frm.ShowDialog() == DialogResult.OK)
            {
                return(frm.ElementsSelectionnes);
            }
            else
            {
                return(objSelecSAV);
            }
        }
        //-------------------------------------------------------------------------
        private CResultAErreur CheckNodesFromListe(TreeNodeCollection nodeCollection, CListeObjetsDonnees liste)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!liste.TypeObjets.IsSubclassOf(typeof(CGroupeStructurant)))
            {
                throw new Exception(I.T("The type of the list objects  must inherit from CGroupeStructurant.|30078"));
            }

            foreach (TreeNode node in nodeCollection)
            {
                if (node.Tag is CGroupeStructurant)
                {
                    CGroupeStructurant groupe = (CGroupeStructurant)node.Tag;
                    if (liste.Contains(groupe))
                    {
                        if (node.Parent != null)
                        {
                            node.Parent.Expand();
                        }
                        node.Checked = true;
                        CResultAErreur tempResult = CheckNodesFromListe(node.Nodes, liste);
                        if (!tempResult)
                        {
                            result.Erreur.EmpileErreurs(tempResult.Erreur);
                            result.SetFalse();
                            return(result);
                        }
                    }
                    else
                    {
                        node.Checked = false;
                    }
                }
            }
            return(result);
        }