//----------------------------------------------- private IEditeurDonneeBesoin GetEditeurEnCours(ETypeEditeurBesoin kindEditeur) { IEditeurDonneeBesoin editeur = null; if (m_dicEditeursEnCours.TryGetValue(kindEditeur, out editeur)) { return(editeur); } return(null); }
public void SetEditeur(ETypeEditeurBesoin kindEditeur, Type typeDonnee, IEditeurDonneeBesoin editeur) { Dictionary <Type, IEditeurDonneeBesoin> dic = null; if (!m_dic.TryGetValue(kindEditeur, out dic)) { dic = new Dictionary <Type, IEditeurDonneeBesoin>(); m_dic[kindEditeur] = dic; } dic[typeDonnee] = editeur; }
//----------------------------------------------- void editeur_OnCoutChanged(object sender, EventArgs e) { IEditeurDonneeBesoin editeurCout = GetEditeurEnCours(ETypeEditeurBesoin.EditeurCout); if (editeurCout != null && editeurCout != sender) { editeurCout.RefreshFromExternalChangeOnDonnee(); } //Recalcul Coût global RefreshCoutTotal(); }
public IEditeurDonneeBesoin GetEditeur(ETypeEditeurBesoin kindEditeur, Type typeDonnee) { Dictionary <Type, IEditeurDonneeBesoin> dic = null; if (m_dic.TryGetValue(kindEditeur, out dic)) { IEditeurDonneeBesoin editeur = null; if (dic.TryGetValue(typeDonnee, out editeur)) { return(editeur); } } return(null); }
/// <summary> /// Récupère un éditeur /// </summary> /// <param name="donnee"></param> /// <param name="bEditeurDetail">Indique si on veut l'éditeur détaillé (en bas de la fenêtre besoin), ou l'éditeur de cout</param> /// <returns></returns> public static IEditeurDonneeBesoin GetEditeurDonnee(IDonneeBesoin donnee, ETypeEditeurBesoin typeEditeur) { if (donnee == null) { return(null); } Type tpEditeur = null; if (GetDic(typeEditeur).TryGetValue(donnee.GetType(), out tpEditeur)) { IEditeurDonneeBesoin editeur = Activator.CreateInstance(tpEditeur, new object[0]) as IEditeurDonneeBesoin; return(editeur); } return(null); }
//-------------------------------------------------------- private void RefreshCoutTotal() { double?dOld = m_txtCoutTotal.DoubleValue; IEditeurDonneeBesoin editeurCout = GetEditeurEnCours(ETypeEditeurBesoin.EditeurCout); if (Besoin != null && editeurCout != null && editeurCout.DonneeBesoin != null) { m_txtCoutTotal.DoubleValue = editeurCout.DonneeBesoin.CalculeCout(Besoin); } else if (Besoin != null) { m_txtCoutTotal.DoubleValue = Besoin.CoutSaisiTotalSansRegroupement; } else { m_txtCoutTotal.DoubleValue = null; m_txtTotalTotal.DoubleValue = null; } if (Besoin != null) { CBesoinQuantite q = Besoin.RegroupementQuantite; m_panelTotalTotal.Visible = q != null; if (q != null) { m_txtTotalTotal.DoubleValue = m_txtCoutTotal.DoubleValue * q.Quantite; } else { m_txtTotalTotal.DoubleValue = m_txtCoutTotal.DoubleValue; } } else { m_panelTotalTotal.Visible = false; } if (!m_bIsInitializing)//ChangementDeValeurTotale { ((CControleListeBesoins)AssociatedListControl).AfterTotalChanged(Besoin); } }
//----------------------------------------------- private IEditeurDonneeBesoin GetEditeur(ETypeEditeurBesoin kindEditeur, IDonneeBesoin calcul, CBesoin besoin) { IEditeurDonneeBesoin editeur = null; if (calcul != null) { editeur = m_editeursAlloues.GetEditeur(kindEditeur, calcul.GetType()); if (editeur == null) { editeur = CAllocateurEditeurDonneeBesoin.GetEditeurDonnee(calcul, kindEditeur); if (editeur != null) { editeur.OnCoutChanged += new EventHandler(editeur_OnCoutChanged); ((Control)editeur).Visible = false; ((Control)editeur).TabStop = false; editeur.OnDataChanged += new EventHandler(editeur_OnDataChanged); switch (kindEditeur) { case ETypeEditeurBesoin.EditeurCout: m_panelDetailCout.Controls.Add((Control)editeur); ((Control)editeur).Dock = DockStyle.Fill; break; case ETypeEditeurBesoin.EditeurDonnees: m_panelEditeurData.Controls.Add((Control)editeur); ((Control)editeur).Dock = DockStyle.Top; break; } editeur.LockEdition = LockEdition; m_extModeEdition.SetModeEdition(editeur, TypeModeEdition.EnableSurEdition); } m_editeursAlloues.SetEditeur(kindEditeur, calcul.GetType(), editeur); } } return(editeur); }
//------------------------------------------------------------- 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(); }