//--------------------------------------------------
        private void m_lnkRestore_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            if (!m_bCanRestore)
            {
                return;
            }
            DataTable table = m_grilleProprietes.DataSource as DataTable;

            if (table != null && m_objetAffiche != null && m_valeursAffichees != null)
            {
                using (CContexteDonnee contexte = new CContexteDonnee(m_objetAffiche.ContexteDonnee.IdSession, true, false))
                {
                    CObjetDonneeAIdNumerique objetAModifier = contexte.GetObjetInThisContexte(m_objetAffiche) as CObjetDonneeAIdNumerique;
                    List <DataRow>           rowsSelected   = new List <DataRow>();
                    foreach (DataRow row in table.Rows)
                    {
                        if ((bool)row[m_strColChecked])
                        {
                            rowsSelected.Add(row);
                        }
                    }
                    CResultAErreur result = CResultAErreur.True;
                    if (rowsSelected.Count > 0)
                    {
                        objetAModifier.BeginEdit();
                        foreach (DataRow row in rowsSelected)
                        {
                            IChampPourVersion champ = row[m_strColObjetHistorique] as IChampPourVersion;
                            if (champ != null)
                            {
                                IJournaliseurDonneesChamp journaliseur = CGestionnaireAChampPourVersion.GetJournaliseur(champ.TypeChampString);
                                if (journaliseur != null)
                                {
                                    result = journaliseur.AppliqueValeur(m_version.Id, champ, objetAModifier, m_valeursAffichees[champ]);
                                    if (!result)
                                    {
                                        break;
                                    }
                                }
                            }
                        }
                        if (result)
                        {
                            result = objetAModifier.CommitEdit();
                        }
                        if (!result)
                        {
                            objetAModifier.CancelEdit();
                            CFormAlerte.Afficher(result.Erreur);
                        }
                        else
                        {
                            InitForObjet(objetAModifier, m_version);
                        }
                    }
                }
            }
        }
        //-----------------------------------------------------------
        private void CFormAffectationEntitesOrganisationnelles_Load(object sender, EventArgs e)
        {
            sc2i.win32.common.CWin32Traducteur.Translate(this);
            m_lblEntite.Text             = m_objet.DescriptionElement;
            m_extModeEdition.ModeEdition = false;

            m_btnOk.Visible = false;
            CSessionClient session = CSessionClient.GetSessionForIdSession(CTimosApp.SessionClient.IdSession);
            CRestrictionUtilisateurSurType rest = session.GetInfoUtilisateur().GetRestrictionsSurObjet(m_objet, m_objet.ContexteDonnee.IdVersionDeTravail);

            if (rest.CanModifyType() && !m_objet.ContexteDonnee.IsEnEdition)
            {
                rest = session.GetInfoUtilisateur().GetRestrictionsSur(typeof(CRelationElement_EO), m_objet.ContexteDonnee.IdVersionDeTravail);
                m_lnkAjouter.Visible         = rest.CanCreateType();
                m_lnkSupprimer.Visible       = rest.CanDeleteType();
                m_btnOk.Visible              = m_lnkAjouter.Visible || m_lnkSupprimer.Visible;
                m_extModeEdition.ModeEdition = m_btnOk.Visible;
                m_objet.BeginEdit();
                m_bStopEditionSurSortie = true;
            }
            m_wndListeEos.ListeSource = CRelationElement_EO.GetListeRelationsForElement(m_objet);
        }
        //------------------------------------------------------
        public static void EditeRestricitionsSpecifiques(
            IElementARestrictionsSpecifiques element,
            bool bModeEdition)
        {
            CFormEditRestrictionsSpecifiques form  = new CFormEditRestrictionsSpecifiques();
            CObjetDonneeAIdNumerique         objet = element as CObjetDonneeAIdNumerique;

            objet.BeginEdit();
            form.m_elementARestrictions       = objet as IElementARestrictionsSpecifiques;
            form.m_extModeEdition.ModeEdition = bModeEdition;
            if (form.ShowDialog() == DialogResult.OK && bModeEdition)
            {
                CResultAErreur result = objet.CommitEdit();
                if (!result)
                {
                    CFormAlerte.Afficher(result.Erreur);
                }
            }
            else
            {
                objet.CancelEdit();
            }
            form.Dispose();
        }