示例#1
0
        public static void LoadDefinedProviders()
        {
            if (DataProviderEd.getterProviders != null && DataProviderEd.setterProviders != null)
            {
                return;
            }
            DataProviderEd.getterProviders = new List <DataProvider>();
            DataProviderEd.setterProviders = new List <DataProvider>();
            plyEdUtil.CheckPath(BloxEdGlobal.ProvidersPath);
            List <DataProvider> list = plyEdUtil.LoadAssets <DataProvider>(BloxEdGlobal.ProvidersPath);

            for (int i = 0; i < list.Count; i++)
            {
                if (!string.IsNullOrEmpty(list[i].ident))
                {
                    if (list[i].isSetter)
                    {
                        DataProviderEd.setterProviders.Add(list[i]);
                    }
                    else
                    {
                        DataProviderEd.getterProviders.Add(list[i]);
                    }
                }
            }
            DataProviderEd.getterProviders.Insert(0, null);
            DataProviderEd.setterProviders.Insert(0, null);
            DataProviderEd.UpdateProviderLabels();
        }
示例#2
0
        public static DataProvider CreateDataprovider(Type t, string ident, bool isSetter)
        {
            plyEdUtil.CheckPath(BloxEdGlobal.ProvidersPath);
            string       str          = plyEdUtil.GenerateUniqueFileGUID("", BloxEdGlobal.ProvidersPath, ".asset");
            DataProvider dataProvider = (DataProvider)plyEdUtil.LoadOrCreateAsset(t, BloxEdGlobal.ProvidersPath + str + ".asset", false);

            dataProvider.ident    = ident;
            dataProvider.isSetter = isSetter;
            dataProvider.OnCreated();
            EditorUtility.SetDirty(dataProvider);
            AssetDatabase.SaveAssets();
            if (!string.IsNullOrEmpty(ident))
            {
                DataProviderEd.LoadDefinedProviders();
                if (isSetter)
                {
                    DataProviderEd.setterProviders.Add(dataProvider);
                }
                else
                {
                    DataProviderEd.getterProviders.Add(dataProvider);
                }
                DataProviderEd.UpdateProviderLabels();
            }
            return(dataProvider);
        }
示例#3
0
        private void RenameDataProvider(plyTextInputWiz wiz)
        {
            string text = wiz.text;

            wiz.Close();
            if (!string.IsNullOrEmpty(text) && !text.Equals(this.bind.dataprovider.ident))
            {
                if (this.NameIsUniqueInDefined(text))
                {
                    this.bind.dataprovider.ident = text;
                    plyEdUtil.SetDirty(this.bind.dataprovider);
                    DataProviderEd.UpdateProviderLabels();
                }
                else
                {
                    EditorUtility.DisplayDialog("Rename", "The name must be unique.", "OK");
                }
                base.Repaint();
            }
        }
示例#4
0
 public static void DestroyDataprovider(DataProvider p)
 {
     if (!((UnityEngine.Object)p == (UnityEngine.Object)null))
     {
         DataProviderEd.LoadDefinedProviders();
         List <DataProvider> dataProvidersForDestruction = p.GetDataProvidersForDestruction();
         dataProvidersForDestruction.Add(p);
         for (int i = 0; i < dataProvidersForDestruction.Count; i++)
         {
             if (dataProvidersForDestruction[i].isSetter)
             {
                 DataProviderEd.setterProviders.Remove(dataProvidersForDestruction[i]);
             }
             else
             {
                 DataProviderEd.getterProviders.Remove(dataProvidersForDestruction[i]);
             }
             plyEdUtil.DeleteAsset(dataProvidersForDestruction[i]);
         }
         DataProviderEd.UpdateProviderLabels();
     }
 }