Example #1
0
        //--------------------------------------------------------------------
        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();
            }
        }
Example #2
0
        //-------------------------------------------------------------
        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();
        }