private XmlNode WriteConditionToXmlNode(ICondition condition) { string conditionName = condition.GetConditionDef().GetConditionName(); XmlElement conditionElement = m_doc.CreateElement(conditionName); if (condition is AbstractCompositeCondition) { if (condition is AbstractMultipleCondition) { AbstractMultipleCondition multipleCondition = condition as AbstractMultipleCondition; foreach (ICondition subCondition in multipleCondition.ConditionList) { conditionElement.AppendChild(WriteConditionToXmlNode(subCondition)); } } else { AbstractSingleCondition singleCondition = condition as AbstractSingleCondition; conditionElement.AppendChild( WriteConditionToXmlNode(singleCondition.ConditionList[0])); } } else { AbstractAtomicCondition atomicCondition = condition as AbstractAtomicCondition; conditionElement.SetAttribute(RuleFileConstants.Operator, atomicCondition.Operator.GetOperatorName()); conditionElement.SetAttribute(RuleFileConstants.Value, atomicCondition.Value); } return(conditionElement); }
public static TreeNode GetConditionTreeNode(ICondition condition) { TreeNode conditionNode = new TreeNode(); if (condition is AbstractCompositeCondition) { AbstractCompositeCondition compositeCondition = condition as AbstractCompositeCondition; foreach (ICondition subCondition in compositeCondition.ConditionList) { conditionNode.Nodes.Add(GetConditionTreeNode(subCondition)); } // Append the "<Empty>" node. AbstractCompositeConditionDef compositeConditionDef = condition.GetConditionDef() as AbstractCompositeConditionDef; if (conditionNode.Nodes.Count < compositeConditionDef.GetMaxSubconditionNumber()) { conditionNode.Nodes.Add(GetEmptyConditionTreeNode()); } } conditionNode.Text = GetConditionNodeText(condition); conditionNode.Tag = condition; SetRuleTreeNodeImage(conditionNode); return(conditionNode); }
private XmlNode WriteConditionToXmlNode(ICondition condition) { string conditionName = condition.GetConditionDef().GetConditionName(); XmlElement conditionElement = m_doc.CreateElement(conditionName); if (condition is AbstractCompositeCondition) { if (condition is AbstractMultipleCondition) { var multipleCondition = condition as AbstractMultipleCondition; foreach (ICondition subCondition in multipleCondition.ConditionList) { conditionElement.AppendChild(WriteConditionToXmlNode(subCondition)); } } else { var singleCondition = condition as AbstractSingleCondition; conditionElement.AppendChild( WriteConditionToXmlNode(singleCondition.ConditionList[0])); } } else { var atomicCondition = condition as AbstractAtomicCondition; conditionElement.SetAttribute(RuleFileConstants.Operator, atomicCondition.Operator.GetOperatorName()); conditionElement.SetAttribute(RuleFileConstants.Value, atomicCondition.Value); } return conditionElement; }
public void InitBeforeShow(TreeNode modifiedTreeNode, ICategory fixedCategory, ICondition fixedCondition) { m_modifiedTreeNode = modifiedTreeNode; m_fixedCategory = fixedCategory; m_fixedCondition = fixedCondition; // Init conditionComboBox List <IConditionDef> conditionDefList = RuleEngine.GetConditionManager().GetPossibleConditionDefList(m_fixedCategory); conditionComboBox.Items.Clear(); foreach (IConditionDef conditionDef in conditionDefList) { conditionComboBox.Items.Add(conditionDef.GetConditionName()); } if (m_fixedCondition != null) { // Select the inital one. // And this line, will call conditionComboBox_SelectedIndexChanged synchronously. conditionComboBox.SelectedItem = m_fixedCondition.GetConditionDef().GetConditionName(); //ResizeControl(); //UpdateOperatorComboBox(); //UpdateValueComboBox(); if (m_fixedCondition is AbstractAtomicCondition) { AbstractAtomicCondition atomicCondition = m_fixedCondition as AbstractAtomicCondition; operatorComboBox.SelectedItem = atomicCondition.Operator.GetOperatorName(); if (m_fixedCondition is NativeParameterIndexCondition) { parameterIndexNumericUpDown.Value = Int32.Parse( atomicCondition.Value, CultureInfo.InvariantCulture); } else { valueComboBox.Text = atomicCondition.Value; } } } else { SetControlVisibility(); } }
public void InitBeforeShow(TreeNode modifiedTreeNode, ICategory fixedCategory, ICondition fixedCondition) { m_modifiedTreeNode = modifiedTreeNode; m_fixedCategory = fixedCategory; m_fixedCondition = fixedCondition; // Init conditionComboBox List<IConditionDef> conditionDefList = RuleEngine.GetConditionManager().GetPossibleConditionDefList(m_fixedCategory); conditionComboBox.Items.Clear(); foreach (IConditionDef conditionDef in conditionDefList) { conditionComboBox.Items.Add(conditionDef.GetConditionName()); } if (m_fixedCondition != null) { // Select the inital one. // And this line, will call conditionComboBox_SelectedIndexChanged synchronously. conditionComboBox.SelectedItem = m_fixedCondition.GetConditionDef().GetConditionName(); //ResizeControl(); //UpdateOperatorComboBox(); //UpdateValueComboBox(); if (m_fixedCondition is AbstractAtomicCondition) { var atomicCondition = (AbstractAtomicCondition) m_fixedCondition; operatorComboBox.SelectedItem = atomicCondition.Operator.GetOperatorName(); if (m_fixedCondition is NativeParameterIndexCondition) { parameterIndexNumericUpDown.Value = Int32.Parse( atomicCondition.Value, CultureInfo.InvariantCulture); } else { valueComboBox.Text = atomicCondition.Value; } } } else { SetControlVisibility(); } }
private bool CheckCondition(ICondition condition) { if (condition is AbstractCompositeCondition) { var compositeCondition = (AbstractCompositeCondition) condition; List<ICondition> list = compositeCondition.ConditionList; if (list.Count == 0) { MessageBox.Show(Resource.FormatString("Wrn_EmptyCompositeCondition", condition.GetConditionDef().GetConditionName())); return false; } return list.All(t => CheckCondition(t)); } else { return true; } }
private bool CanConditionApplyToCategory(ICondition condition, ICategory category) { if (condition is AbstractAtomicCondition) return condition.GetConditionDef().CanApplyToCategory(category); else { // AbstractCompositeCondition var compositeCondition = condition as AbstractCompositeCondition; foreach (ICondition subCondition in compositeCondition.ConditionList) { if (!subCondition.GetConditionDef().CanApplyToCategory(category)) return false; } return condition.GetConditionDef().CanApplyToCategory(category); } }
public static TreeNode GetConditionTreeNode(ICondition condition) { TreeNode conditionNode = new TreeNode(); if (condition is AbstractCompositeCondition) { var compositeCondition = (AbstractCompositeCondition) condition; foreach (ICondition subCondition in compositeCondition.ConditionList) { conditionNode.Nodes.Add(GetConditionTreeNode(subCondition)); } // Append the "<Empty>" node. AbstractCompositeConditionDef compositeConditionDef = (AbstractCompositeConditionDef) condition.GetConditionDef(); if (conditionNode.Nodes.Count < compositeConditionDef.GetMaxSubconditionNumber()) { conditionNode.Nodes.Add(GetEmptyConditionTreeNode()); } } conditionNode.Text = GetConditionNodeText(condition); conditionNode.Tag = condition; SetRuleTreeNodeImage(conditionNode); return conditionNode; }