void DesignList_Element_View() { if (SelectedJsonElement == null) { return; } JObject jo_common = SelectedJsonElement.jo ["Common"] as JObject; JArray ja_member = SelectedJsonElement.jo ["Member"] as JArray; JArray ja_views = SelectedJsonElement.jo ["Views"] as JArray; ElementViewScrollPos = GUILayout.BeginScrollView(ElementViewScrollPos); for (int i = 0; i < ja_views.Count; i++) { JObject jo_view = ja_views [i] as JObject; string viewName = jo_view ["Name"].Value <string> (); string viewType = jo_view ["Type"].Value <string> (); JObject jo_view_members = jo_view ["Members"] as JObject; #region VerticalBox Color color = GUI.backgroundColor; if (SelectedViewIdx == i) { GUI.backgroundColor = Color.cyan; } EditorGUILayout.BeginVertical("box"); GUI.backgroundColor = color; EditorGUILayout.BeginHorizontal(); string fold_flag = SelectedViewIdx == i ? "-" : "+"; if (SelectedViewIdx == i) { if (GUILayout.Button(string.Format(" {0}", fold_flag), GUIStyleTemplate.LabelStyle(), GUILayout.MaxWidth(10))) { SelectedViewIdx = SelectedViewIdx != i ? i : -1; } viewName = GUILayout.TextField(viewName); if (viewName != jo_view ["Name"].Value <string> ()) { jo_view ["Name"] = viewName; } GUILayout.Label(" : ", GUIStyleTemplate.LabelStyle(), GUILayout.MaxWidth(10)); viewType = GUILayout.TextField(viewType); if (viewType != jo_view ["Type"].Value <string> ()) { jo_view ["Type"] = viewType; } } else { if (GUILayout.Button(string.Format(" {0} {1} : {2}", fold_flag, viewName, viewType), GUIStyleTemplate.LabelStyle())) { SelectedViewIdx = SelectedViewIdx != i ? i : -1; } } if (GUILayout.Button("-", GUIStyleTemplate.BlackCommandLink(), GUILayout.MaxWidth(10))) { ElementViewTools evtools = new ElementViewTools(SelectedJsonElement.jo); evtools.DeleteView(i); } if (i != 0) { if (GUILayout.Button("^", GUIStyleTemplate.BlackCommandLink(), GUILayout.MaxWidth(10))) { JObject jo0 = ja_views [i] as JObject; JObject jo1 = ja_views [i - 1] as JObject; ja_views [i] = jo1; ja_views [i - 1] = jo0; } } EditorGUILayout.EndHorizontal(); if (SelectedViewIdx == i) { if (jo_view ["Desc"] == null) { jo_view ["Desc"] = ""; } jo_view ["Desc"] = GUILayout.TextArea(jo_view ["Desc"].Value <string> (), GUIStyleTemplate.GreenDescStyle2()); for (int j = 0; j < ja_member.Count; j++) { JObject jo_member = ja_member [j] as JObject; string memberName = jo_member ["Name"].Value <string> (); string rxType = jo_member ["RxType"].Value <string> (); GUILayout.Label(string.Format("{1} | {0}", rxType, memberName), EditorStyles.helpBox); JObject jo_view_bind = jo_view_members [memberName] ["Bind"] as JObject; DesignViewBind(jo_view_bind); } } EditorGUILayout.EndVertical(); #endregion } GUILayout.EndScrollView(); if (GUILayout.Button("Create Default View")) { string element_name = jo_common ["Name"].Value <string> (); string ori_target_view_name = string.Format("{0}View", element_name); string target_view_name = ori_target_view_name; int digital_suffix = 0; while (ja_views.FirstOrDefault(_ => _ ["Name"].Value <string> () == target_view_name) != null) { digital_suffix++; target_view_name = string.Format("{0}{1}", ori_target_view_name, digital_suffix); } ElementViewTools evtools = new ElementViewTools(SelectedJsonElement.jo); evtools.CreateDefaultView(target_view_name); } }
void DesignList_Enum() { if (SelectedJsonElement == null || SelectedJsonElement.jo ["Common"] ["Desc"] == null) { return; } JObject jo_common = SelectedJsonElement.jo ["Common"] as JObject; if (GUILayout.Button("<<")) { SelectedJsonElement = null; EnumMembersList = null; NeedRefresh = true; AutoSelected.SelectedJsonFileName = string.Empty; AutoSelected.Save(); return; } GUILayout.Label(string.Format("Workspace:{0}, Enum:{1}", SelectedJsonElement.Workspace, SelectedJsonElement.Name), EditorStyles.boldLabel); jo_common ["Desc"] = GUILayout.TextArea(jo_common ["Desc"].Value <string> (), GUIStyleTemplate.GreenDescStyle2()); DesignList_Enum_Member(); GUILayout.BeginHorizontal(); if (GUILayout.Button("Reset")) { SelectedJsonElement.Load(); ResetEnumMembersList(); } if (GUILayout.Button("Save")) { SaveJson(); } if (GUILayout.Button("Save&Generate")) { SaveJson(); Generator.GenerateCode(SelectedJsonElement.jo); AssetDatabase.Refresh(); NeedRefresh = true; this.Repaint(); } GUILayout.EndHorizontal(); }
void DesignList_Element() { if (SelectedJsonElement == null || SelectedJsonElement.jo ["Common"] ["Desc"] == null) { return; } JObject jo_common = SelectedJsonElement.jo ["Common"] as JObject; if (GUILayout.Button("<<")) { SelectedJsonElement = null; ElementMembersList = null; NeedRefresh = true; AutoSelected.SelectedJsonFileName = string.Empty; AutoSelected.Save(); return; } GUILayout.Label(string.Format("Workspace:{0}, Element:{1}", SelectedJsonElement.Workspace, SelectedJsonElement.Name), EditorStyles.boldLabel); jo_common ["Desc"] = GUILayout.TextArea(jo_common ["Desc"].Value <string> (), GUIStyleTemplate.GreenDescStyle2()); if (jo_common ["Type"] == null) { jo_common.Add("Type", ""); } GUILayout.BeginHorizontal(); jo_common ["Type"] = EditorGUILayout.TextField("Base", jo_common ["Type"].Value <string> ()); GUILayout.EndHorizontal(); toolbar_index = GUILayout.Toolbar(toolbar_index, ToolbarHeaders, new GUILayoutOption[] { GUILayout.Height(25f) }); switch (toolbar_index) { case 0: DesignList_Element_Member(); break; case 1: DesignList_Element_View(); break; default: break; } GUILayout.BeginHorizontal(); if (GUILayout.Button("Reset")) { SelectedJsonElement.Load(); ResetElementMembersList(); } if (GUILayout.Button("Save")) { SaveJson(); } if (GUILayout.Button("Save&Generate")) { SaveJson(); Generator.GenerateCode(SelectedJsonElement.jo); AssetDatabase.Refresh(); NeedRefresh = true; this.Repaint(); } GUILayout.EndHorizontal(); }