protected virtual bool ValidateItem(T item, DrawerBase drawer, bool refreshValues = false, bool isRoot = true) { if (itemsErrorLookup.ContainsKey(item) == false) { itemsErrorLookup[item] = new ErrorLookup(); } else { if (isRoot) { itemsErrorLookup[item].message = ""; itemsErrorLookup[item].drawers.Clear(); } } if (refreshValues) { drawer.RefreshValue(); } var childDrawer = drawer as IChildrenDrawer; if (childDrawer != null) { bool allValid = true; foreach (var c in childDrawer.children) { var valid = ValidateItem(item, c, refreshValues, false); if (valid == false) { allValid = false; } } if (allValid == false) { return(false); } } else { if (drawer.isEmpty && drawer.required && drawer.isInArray == false) { itemsErrorLookup[item].message += drawer.fieldName.text + " is empty" + '\n'; itemsErrorLookup[item].drawers.Add(drawer); return(false); } } return(true); }
static public void Test() { ErrorLookup.TestStatic(); }