public override void OnInspectorGUI() { switch (_state) { case StateGenerate.None: { if (GUILayout.Button("Create")) { _state = StateGenerate.ChooseType; } if (GUILayout.Button("Check")) { AssemblyReflectionHelper.GetAllTypesInSolution <DataBox>().Where(t => !t.IsAbstract && !t.IsGenericType).ForEach(t => { CreateAsset(t); }); _allProviders = AssemblyReflectionHelper.AllDataBox().ToList(); RefreshView(); } break; } case StateGenerate.ChooseType: EditorGUILayout.BeginVertical(); DrawChooseType(); EditorGUILayout.EndVertical(); break; case StateGenerate.Generating: { _allGenerators.ForEach(g => g.Generate()); AssetDatabase.Refresh(); _state = StateGenerate.None; break; } } base.OnInspectorGUI(); if (GUILayout.Button("Set generate settings")) { foreach (var dataBox in AssemblyReflectionHelper.AllDataBox()) { Debug.Log(dataBox.ObjectType.Name); } // SetPathesWindow.ShowSetPathWindow(); } }
private void Init() { var allTypes = AssemblyReflectionHelper.GetAllTypesInSolution <DataObject>(true).ToList(); _state = StateGenerate.None; _namesType = new string[allTypes.Count]; _dicTypes = new Dictionary <int, Type>(); for (var i = 0; i < allTypes.Count; i++) { _namesType[i] = allTypes[i].Name; _dicTypes.Add(i, allTypes[i]); } _parentType = typeof(DataObject); ChooseIndex = _dicTypes.FirstOrDefault(o => o.Value == _parentType).Key; _allGenerators = new List <CodeGenerators> { new DataGenerator(), new ProviderGenerator() }; _IsInited = true; }
private void DrawChooseType() { EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Add ", GUILayout.Width(30)); NameNewType = EditorGUILayout.TextField(NameNewType); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); { EditorGUILayout.LabelField("Parent Type ", GUILayout.Width(80)); EditorGUI.BeginChangeCheck(); ChooseIndex = EditorGUILayout.Popup(ChooseIndex, _namesType, GUILayout.Width(80)); if (EditorGUI.EndChangeCheck()) { _parentType = _dicTypes[ChooseIndex]; } } EditorGUILayout.EndHorizontal(); if (GUILayout.Button("Generate")) { Debug.Log("Check Enter"); if (NameNewType.Length < 3) { Debug.LogWarning("Less than 3 "); return; } if (_namesType.Contains(NameNewType)) { Debug.LogWarning("Same Name "); return; } _allGenerators.ForEach(g => g.SetType(NameNewType, _parentType)); _state = StateGenerate.Generating; } }