Ejemplo n.º 1
0
        private void AppendNode(SelectionRuleNode ruleNode, Node parent)
        {
            if (ruleNode != null)
            {
                Node node = RuleEditorHelper.CreateNode(ruleNode, _model);

                if (parent != null)
                {
                    parent.Nodes.Add(node);
                }
                else
                {
                    _decisionTree.Nodes.Add(node);
                    _decisionTree.DisplayRootNode = node;
                }

                if (ruleNode is NaryRuleNode nary)
                {
                    if (nary.Children.Count > 0)
                    {
                        foreach (SelectionRuleNode item in nary.Children)
                        {
                            AppendNode(item, node);
                        }
                    }
                }
                else if (ruleNode is UnaryRuleNode unary && unary.Child != null)
                {
                    AppendNode(unary.Child, node);
                }
            }
        }
Ejemplo n.º 2
0
 private void _decisionTree_DragEnter(object sender, DragEventArgs e)
 {
     if (e.Data.GetData(typeof(Node)) is Node)
     {
         e.Effect = DragDropEffects.Move;
     }
     else
     {
         ButtonItem item = (ButtonItem)e.Data.GetData(typeof(ButtonItem));
         if (item == null)
         {
             e.Effect = DragDropEffects.None;
         }
         else
         {
             var node = RuleEditorHelper.CreateNode(item, _model);
             e.Data.SetData(typeof(Node), node);
             e.Effect = DragDropEffects.Copy;
             _validator.ClearFailedValidations();
         }
     }
 }
Ejemplo n.º 3
0
 private void Clear()
 {
     RuleEditorHelper.ClearNode(_decisionTree.DisplayRootNode);
     _decisionTree.DisplayRootNode = null;
     _decisionTree.Nodes.Clear();
 }