//------------------------------------------------------------- private void ModifContrôleCout() { foreach (IEditeurDonneeBesoin editeurTmp in m_dicEditeursEnCours.Values) { if (editeurTmp != null) { ((Control)editeurTmp).Visible = false; } } m_dicEditeursEnCours.Clear(); IEditeurDonneeBesoin editeur = null; if (Besoin != null) { IDonneeBesoin donnee = Besoin.DonneeBesoin; IEnumerable <CItemBesoin> lstBesoins = from i in AssociatedListControl.Items select i as CItemBesoin; foreach (ETypeEditeurBesoin kind in Enum.GetValues(typeof(ETypeEditeurBesoin))) { if (kind == ETypeEditeurBesoin.EditeurCout) { switch (ModeAffichage) { case EModeAffichageBesoins.ModeSansCout: editeur = null; break; case EModeAffichageBesoins.ModeConception: editeur = GetEditeur(kind, donnee, Besoin); break; case EModeAffichageBesoins.ModeSuivi: editeur = m_panelSuivi; break; default: editeur = null; break; } } else { editeur = GetEditeur(kind, donnee, Besoin); } if (editeur != null) { editeur.Init(donnee, Besoin, CurrentItem as CItemBesoin, lstBesoins); ((Control)editeur).Visible = true; m_dicEditeursEnCours[kind] = editeur; } } m_imageBesoin.Image = CTypeDonneeBesoin.GetImage((ETypeDonneeBesoin)Besoin.TypeBesoinCode); } editeur = GetEditeurEnCours(ETypeEditeurBesoin.EditeurDonnees); if (editeur != null) { m_panelEditeurData.Height = ((Control)editeur).Height; } else { m_panelEditeurData.Height = 0; } CalcHeight(); RefreshCoutTotal(); }
private void UpdateMenuTypeCalculCout() { if (DesignMode) { return; } if (m_menuTypeDeBesoin.DropDownItems.Count == 0) { //Crée les items //trouve les types implémentant ICalculCoutBesoin List <Type> lstTypes = new List <Type>(); foreach (Assembly ass in CGestionnaireAssemblies.GetAssemblies()) { foreach (Type tp in ass.GetTypes()) { if (typeof(IDonneeBesoin).IsAssignableFrom(tp) && !tp.IsAbstract) { lstTypes.Add(tp); } } } foreach (Type tp in lstTypes) { try { IDonneeBesoin c = Activator.CreateInstance(tp, new object[0]) as IDonneeBesoin; ToolStripMenuItem itemTypeCalcul = new ToolStripMenuItem(c.LibelleStatique); if (c.ShortKey != null) { m_dicShortKeysToTypeBesoin[c.ShortKey.Value] = tp; string strLib = c.LibelleStatique; int nIndex = c.LibelleStatique.ToUpper().IndexOf(c.ShortKey.Value.ToString().ToUpper()); if (nIndex >= 0) { strLib = strLib.Insert(nIndex, "&"); } itemTypeCalcul.Text = strLib; } itemTypeCalcul.Tag = c; itemTypeCalcul.Image = CTypeDonneeBesoin.GetImage(c.TypeDonnee); m_menuTypeDeBesoin.DropDownItems.Add(itemTypeCalcul); itemTypeCalcul.Click += new EventHandler(itemTypeCalcul_Click); } catch { } } } m_menuTypeDeBesoin.Enabled = !LockEdition; //Met à jour les actions CUtilMenuActionSurElement.InitMenuActions(Besoin, m_menuActions.DropDownItems, new MenuActionEventHandler(OnActionSurBesoin)); CBesoin besoin = Besoin; if (besoin != null) { foreach (ToolStripMenuItem item in m_menuTypeDeBesoin.DropDownItems) { IDonneeBesoin c = item.Tag as IDonneeBesoin; if (c != null) { item.Visible = c.CanApplyOn(besoin); } } } }