public static string GetConditionNodeText(ICondition condition) { if (condition is AbstractCompositeCondition) { AbstractCompositeCondition compositeCondition = condition as AbstractCompositeCondition; return(compositeCondition.GetConditionDef().GetConditionName()); } else if (condition is AbstractAtomicCondition) { AbstractAtomicCondition singleCondition = condition as AbstractAtomicCondition; return(singleCondition.GetExpression()); } else { return(TreeNodeConstants.EmptyCondition); } }
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(); } }
internal ICondition GetCondition() { if (conditionComboBox.SelectedItem == null) { return(null); } AbstractConditionManager conditionManager = RuleEngine.GetConditionManager(); ICondition condition = conditionManager.CreateCondition(conditionComboBox.SelectedItem.ToString()); if (condition is AbstractAtomicCondition) { AbstractAtomicCondition atomicCondition = condition as AbstractAtomicCondition; if (operatorComboBox.SelectedItem == null) { return(null); } string operatorName = operatorComboBox.SelectedItem.ToString(); atomicCondition.Operator = RuleEngine.GetOperatorManager().GetOperator(operatorName); if (atomicCondition is NativeParameterIndexCondition) { atomicCondition.Value = "" + parameterIndexNumericUpDown.Value; } else { if (valueComboBox.Text.Trim().Equals("")) { return(null); } atomicCondition.Value = valueComboBox.Text; } return(atomicCondition); } else { return(condition); } }