Exemplo n.º 1
0
        //-----------------------------------------------
        private IEditeurDonneeBesoin GetEditeurEnCours(ETypeEditeurBesoin kindEditeur)
        {
            IEditeurDonneeBesoin editeur = null;

            if (m_dicEditeursEnCours.TryGetValue(kindEditeur, out editeur))
            {
                return(editeur);
            }
            return(null);
        }
Exemplo n.º 2
0
            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;
            }
Exemplo n.º 3
0
        //-----------------------------------------------
        void editeur_OnCoutChanged(object sender, EventArgs e)
        {
            IEditeurDonneeBesoin editeurCout = GetEditeurEnCours(ETypeEditeurBesoin.EditeurCout);

            if (editeurCout != null &&
                editeurCout != sender)
            {
                editeurCout.RefreshFromExternalChangeOnDonnee();
            }
            //Recalcul Coût global
            RefreshCoutTotal();
        }
Exemplo n.º 4
0
            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);
            }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        //--------------------------------------------------------
        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);
            }
        }
Exemplo n.º 7
0
        //-----------------------------------------------
        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);
        }
Exemplo n.º 8
0
        //-------------------------------------------------------------
        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();
        }