//-------------------------------------------------------------------- private void m_lnkAddProfil_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { CProfilUtilisateur profil = (CProfilUtilisateur)CFormSelectUnObjetDonnee.SelectObjetDonnee( I.T("Select user profils|20734"), typeof(CProfilUtilisateur), null, "Libelle"); if (profil != null) { //Crée la relation du profil CRelationUtilisateur_Profil relation = profil.CreateNewRelationToRelation(m_relationEditee); CPanelUtilisateur_Profil panel = new CPanelUtilisateur_Profil(); panel.Parent = m_panelSousProfils; panel.CreateControl(); panel.Dock = DockStyle.Top; panel.Init(relation); Height = GetIdealHeight(); } }
//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CRelationUtilisateur_Profil rel = (CRelationUtilisateur_Profil)objet; if (rel.Utilisateur == null && rel.RelationParente == null) { result.EmpileErreur(I.T("The user cannot be null|302")); } if (rel.Profil == null && rel.Profil_Inclusion == null) { result.EmpileErreur(I.T("The profile cannot be null|303")); } } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); } return(result); }
//------------------------------------------------------------- public void Init(CRelationUtilisateur_Profil relation) { m_relationEditee = relation; CProfilUtilisateur profil = relation.Profil; CListeObjetsDonnees listeInclusionsFillesDuProfil = null; if (profil != null) { m_lblNomProfil.Text = profil.Libelle; m_panelEnteteProfil.Visible = true; if (profil.Affinable && profil.EntiteOrganisationnelle != null) { m_lblLibelleSaisie.Text = profil.LibelleSaisieEntite; m_panelSelectEntite.Visible = true; } else { m_panelSelectEntite.Visible = false; } listeInclusionsFillesDuProfil = profil.Inclusions; } else { if (relation.Profil_Inclusion != null) { CProfilUtilisateur_Inclusion inclusion = relation.Profil_Inclusion; m_panelEnteteProfil.Visible = false; if (inclusion.ProfilFils.Affinable && inclusion.ProfilFils.EntiteOrganisationnelle != null) { m_panelSelectEntite.Visible = true; m_lblLibelleSaisie.Text = inclusion.Libelle; } else { m_panelSelectEntite.Visible = false; } listeInclusionsFillesDuProfil = relation.Profil_Inclusion.InclusionsFilles; } } UpdateLibelleEntite(); m_panelSousProfils.SuspendDrawing(); foreach (Control ctrl in m_panelSousProfils.Controls) { ctrl.Parent = null; ctrl.Dispose(); } m_panelSousProfils.Controls.Clear(); ArrayList lstPanels = new ArrayList(); Dictionary <int, bool> dicProfilsInclusionARelationsExistantes = new Dictionary <int, bool>(); foreach (CRelationUtilisateur_Profil sousRel in relation.RelationFilles) { CPanelUtilisateur_Profil panel = new CPanelUtilisateur_Profil(); panel.Dock = DockStyle.Top; panel.CreateControl(); panel.LockEdition = LockEdition; if (sousRel.Profil_Inclusion != null) { dicProfilsInclusionARelationsExistantes[sousRel.Profil_Inclusion.Id] = true; } panel.Init(sousRel); lstPanels.Add(panel); } if (!LockEdition) { //Vérifie qu'il existe bien de relations pour toutes les inclusions filles foreach (CProfilUtilisateur_Inclusion profInc in listeInclusionsFillesDuProfil) { if (!dicProfilsInclusionARelationsExistantes.ContainsKey(profInc.Id)) { //Il faut créer une relation CRelationUtilisateur_Profil newRel = profInc.CreateNewRelationToRelation(relation); CPanelUtilisateur_Profil panel = new CPanelUtilisateur_Profil(); panel.Dock = DockStyle.Top; panel.CreateControl(); panel.Init(newRel); lstPanels.Add(panel); } } } m_panelSousProfils.Controls.AddRange((Control[])lstPanels.ToArray(typeof(Control))); Height = GetIdealHeight(); m_panelSousProfils.Height = GetHeightSousProfils(); m_panelSousProfils.ResumeDrawing(); UpdateCouleurMarge(); }