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); }
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); } }