public static void AfficherContacts(IElementAContacts elemAActeursPoss) { CFormFloatContacts frm = new CFormFloatContacts(); frm.m_elemAActeursPoss = elemAActeursPoss; frm.Show(); }
/// <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); }
//------------------------------------------------ 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; }