private ControlMarkupCount FindControlWithMissingMarkup(IValidTreeControl node) { ControlMarkupCount missingMarkupControl = null; if (node is GeometricShapeWpfControl) { var geometricShapeControl = node as GeometricShapeWpfControl; int numberOfMissingMarkup = NumberOfMissingMarkupRequiredByControl(geometricShapeControl); if (numberOfMissingMarkup > 0) { return new ControlMarkupCount { GeometricShapeWpfControl = geometricShapeControl, MarkupCount = numberOfMissingMarkup } } ; } if (node.ChildControls != null) { foreach (var child in node.ChildControls) { missingMarkupControl = FindControlWithMissingMarkup(child); if (missingMarkupControl != null) { break; } } } return(missingMarkupControl); }
public IValidTreeControl FindInvalidControl() { IValidTreeControl invalidControl = null; foreach (IValidTreeControl node in NodeControls) { invalidControl = FindInvalidControl(node); if (invalidControl != null) { break; } } return(invalidControl); }
private void UpdateGeometricShapeControlValidity(IValidTreeControl control) { if (control is GeometricShapeWpfControl) { var geometricShapeControl = control as GeometricShapeWpfControl; if (NumberOfMissingMarkupRequiredByControl(geometricShapeControl) == 0) { geometricShapeControl.Valid = true; } } if (control.ChildControls != null) { foreach (var child in control.ChildControls) { UpdateGeometricShapeControlValidity(child); } } }
private IValidTreeControl FindInvalidControl(IValidTreeControl node) { IValidTreeControl invalidControl = null; if (node.ChildControls != null) { foreach (IValidTreeControl child in node.ChildControls) { if (!child.Valid) { invalidControl = FindInvalidControl(child); break; } } } if (invalidControl == null && !node.Valid && !(node is GeometricShapeWpfControl)) { invalidControl = node; } return(invalidControl); }