/// /////////////////////////////////////////////////// public void AppliqueRestrictions(CListeRestrictionsUtilisateurSurType restrictions, IGestionnaireReadOnlySysteme gestionnaireReadOnly) { if (restrictions == null || gestionnaireReadOnly == null) { return; } m_listeRestrictions = restrictions.Clone() as CListeRestrictionsUtilisateurSurType; m_gestionnaireReadOnly = gestionnaireReadOnly; //Gère la visibilité des formulaires if (m_elementEdite != null) { CRestrictionUtilisateurSurType rest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); rest.ApplyToObjet(m_elementEdite); if (rest.HasRestrictions) { foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, int> kv in m_tablePageToIdFormulaire) { CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee); if (formulaire.ReadIfExists(kv.Value)) { ERestriction r = rest.GetRestriction(formulaire.CleRestriction); if ((r & ERestriction.Hide) == ERestriction.Hide) { if (TabPages.Contains(kv.Key)) { TabPages.Remove(kv.Key); m_tablePagesInit[kv.Key] = false; } } } } } } //Update les pages initialisées foreach (KeyValuePair <Crownwood.Magic.Controls.TabPage, bool> kv in m_tablePagesInit) { if (kv.Value) { CCreateur2iFormulaireObjetDonnee createur = null; if (m_tableCreateurs.TryGetValue(kv.Key, out createur)) { CRestrictionUtilisateurSurType oldRest = null; if (m_elementEdite != null) { CRestrictionUtilisateurSurType restriction = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); oldRest = m_listeRestrictions.GetRestriction(m_elementEdite.GetType()); restriction.ApplyToObjet(m_elementEdite); int nIdFormulaire; if (m_tablePageToIdFormulaire.TryGetValue(kv.Key, out nIdFormulaire)) { CFormulaire formulaire = new CFormulaire(m_elementEdite.ContexteDonnee); if (formulaire.ReadIfExists(nIdFormulaire)) { ERestriction rest = restriction.GetRestriction(formulaire.CleRestriction); if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly) { restriction.AddRestrictionsHorsPriorite(new CRestrictionUtilisateurSurType(restriction.TypeAssocie, ERestriction.ReadOnly)); //force readonly sur tous les contrôles restriction.RestrictionUtilisateur = ERestriction.ReadOnly; m_listeRestrictions.SetRestriction(restriction); } } } } createur.AppliqueRestrictions(m_listeRestrictions, m_gestionnaireReadOnly); if (oldRest != null) { m_listeRestrictions.SetRestriction(oldRest); } } } } }