示例#1
0
        public static void AfficherContacts(IElementAContacts elemAActeursPoss)
        {
            CFormFloatContacts frm = new CFormFloatContacts();

            frm.m_elemAActeursPoss = elemAActeursPoss;
            frm.Show();
        }
示例#2
0
        /// <summary>
        /// Cette methode permet de retourner les acteurs du profil en les filtrant ou
        /// non sur leur etat (Actif / Inactif)<br/>
        /// De plus, les acteurs retournés seront triés selon l'ordre de priorité définie
        /// dans le type d'occupation horaire de leur activité actuelle
        /// </summary>
        /// <param name="elemAActeursPoss"></param>
        /// <param name="AvecInnactif"></param>
        /// <returns></returns>
        public List <CActeur> GetActeurs(IElementAContacts elemAActeursPoss, bool AvecInnactif)
        {
            List <CActeur> m_lstacteurs = new List <CActeur>();

            CListeObjetsDonnees lst = Profil.GetElementsForSource(elemAActeursPoss, new CFiltreData());

            foreach (CObjetDonnee act in lst)
            {
                if (act is CActeur)
                {
                    m_lstacteurs.Add((CActeur)act);
                }
            }

            if (!AvecInnactif)
            {
                m_lstacteurs = FiltrerInnactifs(m_lstacteurs);
            }


            return(m_lstacteurs);
        }
        //------------------------------------------------
        public void Init(CActeursSelonProfil acteursSelonProf, IElementAContacts elemactc)
        {
            m_elemactc                    = elemactc;
            m_acteursSelonProf            = acteursSelonProf;
            m_bAfficherInactif            = false;
            m_chkAfficherInnActif.Checked = false;

            m_lnkProfilIntervenant.Text = m_acteursSelonProf.Profil.Libelle;

            //On récupère les acteurs associés à ce profil en prenant également les innactifs
            m_acteurs = m_acteursSelonProf.GetActeurs(m_elemactc, true);

            //On trie les acteurs par rapport à leur occupation actuelle
            //m_acteurs.Sort(new CActeur_OccupationActuelleComparer());

            //On récupère le modèle si il existe
            CModeleTexte modeleUtilise = acteursSelonProf.TypeElementAActeursPossibles.ModeleTexteContacts;

            //On ne prends que les acteurs qui travaillent actuellement
            int pos = 0;

            m_nInactifs = 0;
            int largeurEtat = 10;

            foreach (CActeur acteur in m_acteurs)
            {
                CControlContact ctrl = new CControlContact();
                ctrl.m_largeurEtat = largeurEtat;
                if (m_frmConteneur != null)
                {
                    ctrl.m_frmConteneur = m_frmConteneur;
                }

                ctrl.Init(acteur, modeleUtilise);
                largeurEtat = ctrl.m_largeurEtat;

                m_nHauteurControl = ctrl.HauteurOptimale;

                if (ctrl.LargeurOptimale > m_largeurOptimale)
                {
                    m_largeurOptimale  = ctrl.LargeurOptimale + 4;
                    m_hauteurOptimale += ctrl.HauteurOptimale;
                }
                else
                {
                    m_hauteurOptimale += ctrl.HauteurOptimale;
                }

                m_panIntervenants.Controls.Add(ctrl);
                ctrl.TabIndex = pos;
                ctrl.Dock     = DockStyle.Top;
                ctrl.BringToFront();

                if (!ctrl.ActeurActif)
                {
                    m_hauteurOptimale -= ctrl.HauteurOptimale;
                    m_nInactifs++;
                    ctrl.Visible = false;
                }
            }
            m_hauteurOptimale -= 2;             //marge
            Size = new Size(m_largeurOptimale, m_hauteurOptimale);
        }
示例#4
0
        //------------------------------------------------
        public void Init(IElementAContacts elemactc)
        {
            m_elemactc = elemactc;

            m_bInitialise = false;
            m_bRien       = false;

            //On récupère les Profils retournat les acteurs
            m_lstProfilsActeurs = new List <CActeursSelonProfil>();
            m_lstProfilsActeurs = m_elemactc.TypeElementAContactPossible.ProfilsContacts;

            //On les ordonnes
            CActeursSelonProfilPositionComparer comparer = new CActeursSelonProfilPositionComparer();

            m_lstProfilsActeurs.Sort(comparer);

            //On créé les controles pour les afficher
            int pos = 0;

            m_nbActeurs       = 0;
            m_hauteurOptimale = m_panTitre.Height;
            foreach (CActeursSelonProfil acteurSelonProf in m_lstProfilsActeurs)
            {
                CControlProfilsDeElementAContacts ctrl = new CControlProfilsDeElementAContacts();
                if (m_frmConteneur != null)
                {
                    ctrl.m_frmConteneur = m_frmConteneur;
                }

                ctrl.Init(acteurSelonProf, m_elemactc);

                //m_largeurOptimale = Math.Min(Math.Max(ctrl.LargeurOptimale + 4, m_largeurOptimale),400);
                m_largeurOptimale = ctrl.LargeurOptimale;



                //Si il n'y a pas d'acteur on n'affiche pas le controles
                if (ctrl.NbActeurs > 0)
                {
                    m_nbActeurs       += ctrl.NbActeurs;
                    m_hauteurOptimale += ctrl.HauteurOptimale;
                    ctrl.ChangementTailleAffichage += new EventHandler(CControlContactsPhase_ChangementTailleControlFils);

                    m_panControles.Controls.Add(ctrl);

                    ctrl.TabIndex = pos;
                    ctrl.Dock     = DockStyle.Top;
                    ctrl.BringToFront();
                    pos++;
                }
            }

            m_hauteurOptimale     = Math.Min(m_hauteurOptimale, 350);
            m_panControles.Height = m_hauteurOptimale - m_panTitre.Height;

            Size = new Size(m_largeurOptimale, Math.Min(m_hauteurOptimale, 350));

            if (m_nbActeurs == 0)
            {
                m_Err           = I.T("There is no available contacts|1261");
                m_lblTitre.Text = m_Err;
                m_lblTitre.Dock = DockStyle.Fill;
                m_bRien         = true;
            }
            else
            {
                m_lblTitre.Dock = DockStyle.None;
            }
            m_bInitialise = true;
        }