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);
     }
 }
Esempio n. 2
0
        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();
            }
        }
Esempio n. 3
0
        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);
            }
        }