void CreateSchema(string name, List <FieldInfo> fields)
        {
            string error;
            Dictionary <string, object> schemaData = new Dictionary <string, object>();

            GDEItemManager.AddSchema(name, schemaData, out error, true);

            foreach (FieldInfo field in fields)
            {
                if (field.skip)
                {
                    continue;
                }
                else if (field.type != BasicFieldType.Undefined)
                {
                    GDEItemManager.AddBasicFieldToSchema(field.type, name, schemaData, field.name, out error, field.isList,
                                                         field.is2DList, GDEItemManager.GetDefaultValueForType(field.type));
                }
                else
                {
                    GDEItemManager.AddCustomFieldToSchema(field.customType, name, schemaData, field.name, field.isList, field.is2DList, out error);
                }

                if (error != string.Empty)
                {
                    Debug.LogError(string.Format(GDEConstants.ErrorInSheet, name, error, field.cellID));
                }
            }
        }
        protected override bool Create(object data)
        {
            bool   result = true;
            string key    = data as string;
            string error;

            result = GDEItemManager.AddSchema(key, new Dictionary <string, object>(), out error);
            if (result)
            {
                SetNeedToSave(true);
                SetFoldout(true, key);
            }
            else
            {
                EditorUtility.DisplayDialog(GDEConstants.ErrorCreatingSchema, error, GDEConstants.OkLbl);
                result = false;
            }

            return(result);
        }