コード例 #1
0
        //------------------------------------------------------
        private void Init(IEnumerable <ISatisfactionBesoin> lstSatisfactions)
        {
            m_listeNiveaux.Clear();
            m_setSatisfactionsIntegrés.Clear();
            CNiveau niveau = new CNiveau(0);

            foreach (ISatisfactionBesoin sat in lstSatisfactions)
            {
                niveau.AddSatisfaction(this, sat);
            }
            m_listeNiveaux.Add(niveau);


            CNiveau niveau0 = niveau;

            while (niveau.Satisfactions.Count() != 0)
            {
                niveau = CalculeNiveauSuivant();
            }
            niveau = niveau0;
            while (niveau.Satisfactions.Count() != 0)
            {
                niveau = CalculeNiveauPrecedent();
            }
            CalculeRectangles();
            m_satisfactionSel = null;
            m_lienSel         = null;
        }
コード例 #2
0
        //------------------------------------------------------
        private CNiveau CalculeNiveauPrecedent()
        {
            CNiveau niveauPrec = m_listeNiveaux[0];
            CNiveau niveau     = new CNiveau(niveauPrec.Niveau - 1);

            foreach (ISatisfactionBesoin satisfaction in niveauPrec.Satisfactions)
            {
                foreach (CRelationBesoin_Satisfaction rel in satisfaction.RelationsSatisfaits)
                {
                    if (!m_setSatisfactionsIntegrés.Contains(rel.Besoin))
                    {
                        niveau.AddSatisfaction(this, rel.Besoin);
                    }
                }
            }
            m_listeNiveaux.Insert(0, niveau);
            return(niveau);
        }
コード例 #3
0
        //------------------------------------------------------
        private CNiveau CalculeNiveauSuivant(  )
        {
            CNiveau niveauSuiv = m_listeNiveaux[m_listeNiveaux.Count - 1];
            CNiveau niveau     = new CNiveau(m_listeNiveaux[m_listeNiveaux.Count - 1].Niveau + 1);

            foreach (ISatisfactionBesoin sat in niveauSuiv.Satisfactions)
            {
                CBesoin besoin = sat as CBesoin;
                if (besoin != null)
                {
                    foreach (CRelationBesoin_Satisfaction rel in besoin.RelationsSatisfactions)
                    {
                        niveau.AddSatisfaction(this, rel.Satisfaction);
                    }
                }
            }
            m_listeNiveaux.Add(niveau);
            return(niveau);
        }