//------------------------------------------------------------------- public override CResultAErreur VerifieDonnees(CObjetDonnee objet) { CResultAErreur result = CResultAErreur.True; try { CProfilUtilisateur_Inclusion inc = (CProfilUtilisateur_Inclusion)objet; if (inc.ProfilParent == null && inc.InclusionParente == null) { result.EmpileErreur(I.T("The profile inclusion should be linked to a profile or an inclusion|103")); } if (inc.ProfilFils == null) { result.EmpileErreur(I.T("The profile inclusion should be linked to a child profile|104")); } } 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(); }