Пример #1
0
        private void buttonConvert_Click(object sender, EventArgs e)
        {
            if (treeView1.SelectedNode != null)
            {
                if (treeView1.SelectedNode.Tag is XmlComplexCondition)
                {
                    XmlSimpleCondition condition = new XmlSimpleCondition();
                    treeView1.SelectedNode.Tag = condition;
                    treeView1.SelectedNode.Nodes.Clear();
                    treeView1_AfterSelect(null, null);
                }
                else if (treeView1.SelectedNode.Tag is XmlSimpleCondition)
                {
                    XmlSimpleCondition oldCondition = treeView1.SelectedNode.Tag as XmlSimpleCondition;

                    XmlComplexCondition condition = new XmlComplexCondition();
                    treeView1.SelectedNode.Tag = condition;

                    TreeNode node1 = new TreeNode(treeView1.SelectedNode.Text);
                    node1.Tag = oldCondition;
                    treeView1.SelectedNode.Nodes.Add(node1);

                    TreeNode node2 = new TreeNode("unknown");
                    node2.Tag = new XmlSimpleCondition();
                    treeView1.SelectedNode.Nodes.Add(node2);

                    treeView1_AfterSelect(null, null);

                    treeView1.SelectedNode.Text = condition.BinaryOperator.ToString().Replace("Operator", "");
                    treeView1.SelectedNode.ExpandAll();
                }
            }
            label1.Text = BuildConditionString(treeView1.Nodes[0]);
        }
Пример #2
0
        protected override void SerializeProperties(XmlCondition res)
        {
            base.SerializeProperties(res);
            XmlComplexCondition instance = (XmlComplexCondition)res;

            instance.Condition1     = this.Condition1.Serialize();
            instance.Condition2     = this.Condition2.Serialize();
            instance.BinaryOperator = this.BinaryOperator;
        }
Пример #3
0
 public override bool Equals(object obj)
 {
     if (obj != null && obj is XmlComplexCondition)
     {
         XmlComplexCondition complexCondition = obj as XmlComplexCondition;
         if (this.binaryOperator == complexCondition.binaryOperator && this.condition1.Equals((object)complexCondition.Condition1) && this.condition2.Equals((object)complexCondition.Condition2))
         {
             return(true);
         }
     }
     return(false);
 }
Пример #4
0
        /// <summary>
        /// Build the expression string.
        /// </summary>
        /// <returns></returns>
        public string BuildExpressionString()
        {
            //TODO: replace usage of inheritors
            //with implementation and overriding of a virtual function
            string s = "";

            if (this is XmlComplexCondition)
            {
                XmlComplexCondition complex = this as XmlComplexCondition;
                s += "(";
                if (complex.Condition1 != null)
                {
                    s += complex.Condition1.BuildExpressionString();
                }
                else
                {
                    s += "unknown";
                }
                s += " " + complex.BinaryOperator.ToString().Replace("Operator", "").ToLower() + " ";
                if (complex.Condition2 != null)
                {
                    s += complex.Condition2.BuildExpressionString();
                }
                else
                {
                    s += "unknown";
                }

                s += ")";
            }
            else if (this is XmlSimpleCondition)
            {
                XmlSimpleCondition simple = this as XmlSimpleCondition;
                if (simple.UnaryOperator == UnaryOperator.NotOperator)
                {
                    s += "!";
                }
                if (simple.Setting != null)
                {
                    s += simple.Setting.GetPropertyName();
                }
                else
                {
                    s += "unknown";
                }
            }

            return(s);
        }
Пример #5
0
 private void buttonAddComplex_Click(object sender, EventArgs e)
 {
     if (treeView1.SelectedNode != null &&
         treeView1.SelectedNode.Tag is XmlComplexCondition &&
         treeView1.SelectedNode.Nodes.Count < 2)
     {
         XmlComplexCondition condition = new XmlComplexCondition();
         TreeNode            node      = new TreeNode(condition.BinaryOperator.ToString().Replace("Operator", ""));
         node.Tag = condition;
         treeView1.SelectedNode.Nodes.Add(node);
         treeView1.SelectedNode.Expand();
     }
     if (treeView1.SelectedNode != null && treeView1.SelectedNode.Nodes.Count > 1)
     {
         buttonAddSimple.Enabled  = false;
         buttonAddComplex.Enabled = false;
     }
     label1.Text = BuildConditionString(treeView1.Nodes[0]);
 }
Пример #6
0
 XmlCondition GetConditionTree(TreeNode root)
 {
     if (root.Tag is XmlSimpleCondition)
     {
         return(root.Tag as XmlSimpleCondition);
     }
     else
     {
         XmlComplexCondition condition = root.Tag as XmlComplexCondition;
         if (root.Nodes.Count > 0)
         {
             condition.Condition1 = GetConditionTree(root.Nodes[0]);
         }
         if (root.Nodes.Count > 1)
         {
             condition.Condition2 = GetConditionTree(root.Nodes[1]);
         }
         return(condition);
     }
 }
Пример #7
0
        string BuildConditionString(TreeNode root)
        {
            string s = "";

            if (root.Tag is XmlComplexCondition)
            {
                XmlComplexCondition condition = root.Tag as XmlComplexCondition;
                s += "(";
                if (root.Nodes.Count > 0)
                {
                    s += BuildConditionString(root.Nodes[0]);
                }
                s += " " + condition.BinaryOperator.ToString().Replace("Operator", "").ToLower() + " ";
                if (root.Nodes.Count > 1)
                {
                    s += BuildConditionString(root.Nodes[1]);
                }
                s += ")";
            }
            else if (root.Tag is XmlSimpleCondition)
            {
                XmlSimpleCondition condition = root.Tag as XmlSimpleCondition;
                if (condition.UnaryOperator == UnaryOperator.NotOperator)
                {
                    s += "!";
                }
                if (condition.Setting != null)
                {
                    s += condition.Setting.GetPropertyName();
                }
                else
                {
                    s += "unknown";
                }
            }

            return(s);
        }