/// <summary> /// 处理表主体 /// </summary> protected virtual void RenderTable() { posv = GUILayout.BeginScrollView(posv, false, false, EditorGUIStyle.GetHorizontalScrollbarStyle(), GUIStyle.none, EditorGUIStyle.GetTableGroupBoxStyle()); if (!string.IsNullOrEmpty(Data.currentEditorSetting.SearchResourceName)) { Data.currentEditorSetting.ItemMaxCount = Data.LinesCache.Count(x => x.SearchKey.ToLower().Contains(Data.currentEditorSetting.SearchResourceName.ToLower().Trim())); Finallylist = Data.LinesCache .Where(x => x.SearchKey.ToLower().Contains(Data.currentEditorSetting.SearchResourceName.ToLower().Trim())) .Skip(Data.currentEditorSetting.PageIndex * Data.currentEditorSetting.PageAmount) .Take(Data.currentEditorSetting.PageAmount).ToList(); } else { Data.currentEditorSetting.ItemMaxCount = Data.LinesCache.Count; Finallylist = Data.LinesCache .Skip(Data.currentEditorSetting.PageIndex * Data.currentEditorSetting.PageAmount) .Take(Data.currentEditorSetting.PageAmount).ToList(); } //遍历搜索结果 for (int i = 0; i < Finallylist.Count; i++) { var lineData = Finallylist[i]; if (deleteList.Contains(lineData.HashCode)) { continue; } //Select effect diaplay if (current_windowType == WindowType.CALLBACK && SelectDisplayEffectList.Contains(lineData.HashCode)) { GUI.backgroundColor = Color.green; } else { GUI.backgroundColor = Color.white; } GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle()); foreach (var column in lineData.ColumnInfo) { if (ErrorLine.Contains(lineData.HashCode)) { GUI.color = Color.red; } RenderRawColumn(column, lineData); GUI.color = Color.white; GUILayout.Space(Data.currentEditorSetting.ColumnSpan); } RenderExtensionButton(lineData.RawData); GUILayout.Space(Data.currentEditorSetting.ColumnSpan); RenderFunctionButton(lineData.RawData); GUILayout.Space(Data.currentEditorSetting.ColumnSpan); GUILayout.EndHorizontal(); GUILayout.Space(5); } GUILayout.Space(15); GUILayout.EndScrollView(); }
/// <summary> /// 扩展功能按钮栏 /// </summary> /// <param name="lineData"></param> protected virtual void RenderFunctionButton(T lineData) { if (current_windowType == WindowType.CALLBACK) { if (GUILayout.Button(Language.Select, GUI.skin.GetStyle("ButtonLeft"), GUILayout.Width(Data.currentEditorSetting.KitButtonWidth * 2))) { //要确认当前是何种模式 if (select_model == SelectModel.MUTI) { SelectDisplayEffectList.Add(lineData.GetHashCode()); select_callback(selector_raw_list, lineData); ShowNotification(new GUIContent(string.Format(Language.SuccessAdd, JsonUtility.ToJson(lineData)))); } else { single_select_callback(selector_raw_single, lineData, selector_raw_field_single); Close(); } } if (GUILayout.Button(Language.Close, GUI.skin.GetStyle("ButtonRight"), GUILayout.Width(Data.currentEditorSetting.KitButtonWidth * 2))) { Close(); return; } } if (current_windowType != WindowType.CALLBACK) { if (GUILayout.Button(Language.Copy, GUI.skin.GetStyle("ButtonLeft"), new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) })) { PasteItem = DeepClone(lineData); } if (GUILayout.Button(Language.Delete, GUI.skin.GetStyle("ButtonMid"), new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) })) { deleteList.Add(lineData.GetHashCode()); ShowNotification(new GUIContent(Language.Success)); } if (GUILayout.Button(Language.Verfiy, GUI.skin.GetStyle("ButtonMid"), new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) })) { VerfiyLineData(lineData); } if (GUILayout.Button(Language.Paste, GUI.skin.GetStyle("ButtonRight"), new GUILayoutOption[] { GUILayout.Width(Data.currentEditorSetting.KitButtonWidth) })) { if (PasteItem != null) { //Bug fix : 从指定位置删除插入 var insertPos = Data.config_current.ConfigList.IndexOf(lineData); Data.config_current.ConfigList.Remove(lineData); //PasteItem.SetID(item.GetID());//修改为函数插入 Data.config_current.ConfigList.Insert(insertPos, DeepClone(PasteItem)); } } } }