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);
        }
Exemple #2
0
 static public void Test()
 {
     ErrorLookup.TestStatic();
 }