Ejemplo n.º 1
0
        /// <summary>
        /// Accion que se produce cuando se elimina un elemento.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void removeMenuItem_Click(object sender, EventArgs e)
        {
            MenuItem item = sender as MenuItem;


            BayesianNodeChartElement element = ((BayesianNodeChartElement)item.Tag);

            this.Charts.Remove(element);
        }
        public FrProbabilityData(IEnumerable <KeyValuePair <BayesianNodeChartElement, List <StringWraper> > > parent_states,
                                 List <StringWraper> mystates, BayesianNodeChartElement element)
        {
            InitializeComponent();

            if (element == null)
            {
                throw new ArgumentNullException("element can not be null");
            }


            datagridProbabilities.Columns.Clear();
            datagridProbabilities.Rows.Clear();
            int parents = 0;

            //relleno las casillas de los estados de los padres
            foreach (var item in parent_states)
            {
                datagridProbabilities.Columns.Add(item.Key.Name, item.Key.Name);
                parents++;
            }
            int index = 0;

            FirstIndex = -1;
            foreach (var item in mystates)
            {
                index = datagridProbabilities.Columns.Add(item, element.Name + " :" + item);
                if (FirstIndex == -1)
                {
                    FirstIndex = index;
                }
            }
            ParentStates = parent_states.Select(x => x.Value.Count()).ToArray();
            Mystates     = mystates.Count;
            datagridProbabilities.Rows.Add(ParentStates.Aggregate(1, (x, y) => x * y));
            int row = 0;

            CreateParentInstances(parent_states.Select(x => x.Value).ToArray(), 0, new StringWraper[parents], ref row);

            if (element.Condicional_Probabilities != null)
            {
                //si ya tiene probabilidades entonces las pongo el el data grid para su edicion o visualizacion
                for (int j = FirstIndex; j < datagridProbabilities.Columns.Count; j++)
                {
                    for (int i = 0; i < datagridProbabilities.Rows.Count; i++)
                    {
                        datagridProbabilities[j, i].Value =
                            element.Condicional_Probabilities[(j - FirstIndex) * datagridProbabilities.Rows.Count + i];
                    }
                }
            }

            Probabilities = element.Condicional_Probabilities;
        }
Ejemplo n.º 3
0
        public override ChartElement Build()
        {
            BayesianNodeChartElement node = new BayesianNodeChartElement();

            node.Name      = "BayesianNode" + BayesianNodeChartElement.Num_Node;
            node.PinSize   = new Size(5, 5);
            node.BackColor = Color.Snow;


            node.Display        = new Rectangle(Center.X - 100, Center.Y - 20, 110, 25);
            node.ShowOutputPins = false;
            node.ShowInputPins  = false;
            return(node);
        }
        public FrProbabilityData(IEnumerable<KeyValuePair<BayesianNodeChartElement,List<StringWraper>>> parent_states,
            List<StringWraper> mystates,BayesianNodeChartElement element)
        {
           
            InitializeComponent();

            if(element==null)throw new ArgumentNullException("element can not be null");
           

            datagridProbabilities.Columns.Clear();
            datagridProbabilities.Rows.Clear(); 
            int parents=0;
            //relleno las casillas de los estados de los padres
            foreach (var item in parent_states)
            {
                datagridProbabilities.Columns.Add(item.Key.Name, item.Key.Name);
                parents++;
            }
            int index = 0;
            FirstIndex = -1;
            foreach (var item in mystates)
            {
               index= datagridProbabilities.Columns.Add(item,element.Name+" :" + item);
               if (FirstIndex == -1) FirstIndex = index;
              
            } 
            ParentStates = parent_states.Select(x => x.Value.Count()).ToArray();
            Mystates = mystates.Count;
            datagridProbabilities.Rows.Add(ParentStates.Aggregate(1,(x, y) => x*y));
            int row = 0;
            CreateParentInstances(parent_states.Select(x=>x.Value).ToArray(),0,new StringWraper[parents],ref row);
            
            if(element.Condicional_Probabilities!=null)
            {
                //si ya tiene probabilidades entonces las pongo el el data grid para su edicion o visualizacion
                for (int j = FirstIndex; j < datagridProbabilities.Columns.Count; j++)
                {
                    for (int i = 0; i < datagridProbabilities.Rows.Count; i++)
                    {
                        datagridProbabilities[j, i].Value =
                            element.Condicional_Probabilities[(j-FirstIndex)*datagridProbabilities.Rows.Count + i];
                    }
                }
            }

            Probabilities = element.Condicional_Probabilities;


        }
        public override ChartElement Build()
        {
            BayesianNodeChartElement node = new BayesianNodeChartElement();

            node.Name = "BayesianNode" + BayesianNodeChartElement.Num_Node;
            node.PinSize = new Size(5, 5);
            node.BackColor = Color.Snow;
            
           
            node.Display = new Rectangle(Center.X - 100, Center.Y - 20, 110, 25);
            node.ShowOutputPins = false;
            node.ShowInputPins = false;
            return node;
        }