// return false when the flow is empty and should be removed(caller resposability) private bool GetValidationFlowFromTree(ValidatorCoreLib.ValidationFlow flow, TreeViewItem tvi) { if (tvi.Header == null) { return(false); } ValidatorCoreLib.ValidationFlow copiedFlow = (((FlowRow)tvi.Header)).GetValidationFlow(); flow.Name = copiedFlow.Name; flow.UseAndOperator = copiedFlow.UseAndOperator; foreach (Object ob in tvi.Items) { if (ob.GetType().Equals(typeof(WrapPanel))) // RuleRow { WrapPanel wp = (WrapPanel)ob; foreach (UIElement child in wp.Children) { flow.rules.Add(((RuleRow)child).GetValidationRule()); } } else // flow { ValidatorCoreLib.ValidationFlow flowToAdd = new ValidatorCoreLib.ValidationFlow(); if (GetValidationFlowFromTree(flowToAdd, (TreeViewItem)ob)) { flow.flows.Add(flowToAdd); } } } return(true); }
private void AddFlowsAndRules(ValidatorCoreLib.ValidationFlow in_flow, TreeViewItem tvi) { FlowRow fr = new FlowRow(in_flow.Name, in_flow.UseAndOperator, tvi); tvi.Header = fr; tvi.IsExpanded = true; WrapPanel RuleWrapPanel = new WrapPanel(); foreach (ValidatorCoreLib.ValidationRule rule in in_flow.rules) { RuleRow rr = new RuleRow(rule, RuleWrapPanel); RuleWrapPanel.Children.Add(rr); } tvi.Items.Add(RuleWrapPanel); foreach (ValidatorCoreLib.ValidationFlow flow in in_flow.flows) { TreeViewItem Newitem = new TreeViewItem(); Newitem.IsExpanded = true; AddFlowsAndRules(flow, Newitem); tvi.Items.Add(Newitem); } }
public void Add(ValidationFlow flow) { flows.Add(flow); }
internal FlowErrorTrace(ValidationFlow flow) { this.flow = flow; }