예제 #1
0
        private void CreateComponentViewModels(DeterminatieComponent component, ComponentViewModel parent)
        {
            int x;

            if (component is DeterminatieVoorwaarde)
            {
                var temp = component as DeterminatieVoorwaarde;
                if (temp.Parent == null)
                {
                    x    = 10;
                    MaxY = 10;
                }
                else
                {
                    var ouder = temp.Parent as DeterminatieVoorwaarde;
                    if (ouder.Yes == temp)
                    {
                        x = parent.X + 150;
                    }
                    else
                    {
                        x     = parent.X;
                        MaxY += 65;
                    }
                }
                var cvm = new ComponentViewModel
                {
                    X = x,
                    Y = MaxY,
                    DeterminatieComponent = temp,
                    Parent = parent
                };
                ComponentViewModels.Add(cvm);
                CreateComponentViewModels(temp.Yes, cvm);
                CreateComponentViewModels(temp.No, cvm);
            }
            else
            {
                var temp = component.Parent as DeterminatieVoorwaarde;
                if (temp.No == component)
                {
                    MaxY += 65;
                }
                var cvm = new ComponentViewModel
                {
                    X = MaxX * 165,
                    Y = MaxY,
                    DeterminatieComponent = component,
                    Parent = parent
                };
                ComponentViewModels.Add(cvm);
            }
        }
예제 #2
0
        public int BerekenMaxX(DeterminatieComponent component, int breedte)
        {
            if (component is DeterminatieResultaat)
            {
                return(++breedte);
            }
            var temp = component as DeterminatieVoorwaarde;

            if (temp.Parent != null)
            {
                var tempParent = component.Parent as DeterminatieVoorwaarde;
                if (tempParent.Yes == temp)
                {
                    ++breedte;
                }
            }
            if (BerekenMaxX(temp.Yes, 0) > BerekenMaxX(temp.No, 0))
            {
                return(BerekenMaxX(temp.Yes, breedte));
            }
            return(BerekenMaxX(temp.No, breedte));
        }