/// <summary> /// 显示搜索 /// </summary> private void GUISearchInfo() { if (_searchFieldArray.Length <= 0) { return; } GUILayout.BeginHorizontal(EditorGUIStyle.SearchPanelStyle, GUILayout.Height(25)); GUI.color = new Color(1, 1, 1, 0); _searchFieldIndex = EditorGUI.Popup(new Rect(15, 25, 10, 14), _searchFieldIndex, _searchFieldArray); GUI.color = Color.white; GUI.SetNextControlName("SearchText"); string str = GUILayout.TextField(_searchValue, "ToolbarSeachTextFieldPopup"); if (string.IsNullOrEmpty(str) && !_isMouseInSearch) { GUI.color = new Color(0.8f, 0.8f, 0.8f); GUI.Label(new Rect(25, 28, 90, 12), _searchFieldArray[_searchFieldIndex], "RL Element"); GUI.color = Color.white; } if (str != _searchValue) { _searchValue = str; if (!_isAdvancedSearch) { _dataList.Clear(); _isSort = false; if (!string.IsNullOrEmpty(str)) { _dataList = SearchTableData.Search <Test>(_searchFieldArray[_searchFieldIndex], _searchValue, _serializeData.DataList); } else { _dataList.Clear(); _dataList.AddRange(_serializeData.DataList); } } else { if (string.IsNullOrEmpty(_searchValue)) { SearchTableData.Hide(); } else { SearchTableData.Show(_searchValue, (a) => { _searchValue = a + ":"; SearchTableData.Hide(); this.Focus(); GUI.FocusControl("SearchText"); this.Repaint(); }); } } } else if (string.IsNullOrEmpty(str) && !_isSort) { _searchValue = str; _dataList.Clear(); _dataList.AddRange(_serializeData.DataList); } if (string.IsNullOrEmpty(_searchValue)) { GUILayout.Button("", "ToolbarSeachCancelButtonEmpty", GUILayout.Width(20)); } else { if (GUILayout.Button("", "ToolbarSeachCancelButton", GUILayout.Width(20))) { _searchValue = ""; _isMouseInSearch = false; SearchTableData.Hide(); GUI.FocusControl("GUIArea"); } } /*Subsequent versions added * //_isAdvancedSearch = GUILayout.Toggle(_isAdvancedSearch, "", GUILayout.Height(10), GUILayout.Width(10)); * //if (GUILayout.Button("高级搜索", EditorGUIStyle.MiddleButtonStyle, GUILayout.Width(60))) * //{ * // if (_isAdvancedSearch) * // { * // _dataList = SearchTableData.AdvancedSearch<Test>(this, _tableConfig, _searchFieldArray[_searchFieldIndex], _searchValue, _serializeData.DataList); * // } * //} */ GUILayout.EndHorizontal(); }
private void GUIShowTableHead() { _areaWidht = 0; for (int i = 0; i < _divisionSlider.Count; i++) { _areaWidht += _excelConfig.ColumnsWidth[i]; } Rect areaRect = new Rect(55, 55, _areaWidht, 30); _rectList = new List <Rect>(_divisionSlider.HorizontalLayoutRects(areaRect)); GUILayout.BeginArea(new Rect(3, 50, position.width - 20, 50)); GUILayout.BeginScrollView(new Vector2(_tableScrollView.x, 0), GUIStyle.none, GUIStyle.none); GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_areaWidht), GUILayout.Height(30)); int index = 0; GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(50), GUILayout.MaxHeight(30)); GUILayout.Space(2); GUILayout.BeginVertical(); GUILayout.Space(5); if (GUILayout.Button("R", EditorGUIStyle.TitleButtonStyle, GUILayout.Height(20), GUILayout.ExpandWidth(true))) { _searchValue = ""; SearchTableData.Hide(); GUI.FocusControl("GUIArea"); _isSort = false; List <string> tempList = _sortFieldDic.Keys.ToList(); foreach (string item in tempList) { _sortFieldDic[item] = 0; } } GUILayout.EndVertical(); GUILayout.Space(2); GUILayout.EndHorizontal(); for (index = 0; index < _tableConfig.FieldList.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_rectList[index].width), GUILayout.MaxHeight(30)); string fieldName = _tableConfig.FieldList[index].FieldName; if (!string.IsNullOrEmpty(_tableConfig.FieldList[index].Description)) { fieldName += "\r\n" + _tableConfig.FieldList[index].Description; } GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(2); if (GUILayout.Button(fieldName, EditorGUIStyle.TitleButtonStyle, GUILayout.Height(25))) { _isSort = true; _dataList.Clear(); _dataList.AddRange(_serializeData.DataList); if (_isMouseInSearch) { GUI.FocusControl("GUIArea"); _isMouseInSearch = false; _searchValue = ""; } switch (fieldName) { case "Id": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Id).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Id).ToList(); } break; case "Str": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Str).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Str).ToList(); } break; case "Vec2": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Vec2).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Vec2).ToList(); } break; case "Quat": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Quat).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Quat).ToList(); } break; case "Obj": if (_sortFieldDic[fieldName] == -1) { _sortFieldDic[fieldName] = 1; _dataList = _dataList.OrderBy(a => a.Obj).ToList(); } else { _sortFieldDic[fieldName] = -1; _dataList = _dataList.OrderByDescending(a => a.Obj).ToList(); } break; default: break; } List <string> tempList = _sortFieldDic.Keys.ToList(); foreach (string item in tempList) { if (item != fieldName) { _sortFieldDic[item] = 0; } } } _excelConfig.ColumnsWidth[index] = _rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } for (; index < _excelConfig.ColumnsWidth.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GroupBoxStyle, GUILayout.Width(_rectList[index].width), GUILayout.MaxHeight(30)); GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(2); GUILayout.Label("", GUILayout.Height(25)); _excelConfig.ColumnsWidth[index] = _rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } GUILayout.Space(30); GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.EndArea(); float f = 0; if (_areaWidht > position.width) { float diff = _areaWidht - position.width + 20; f = diff * Mathf.Clamp(_tableScrollView.x / diff, 0f, 1f); } _divisionSlider.DoHorizontalSliders(areaRect, _tableConfig.FieldList.Count, f); _divisionSlider.Resize(areaRect.width, DivisionSlider.ResizeMode.PrioritizeOuter); }
private void GUIShowTableHead() { _areaWidht = 0; for (int i = 0; i < _divisionSlider.Count; i++) { _areaWidht += _excelConfig.ColumnsWidth[i]; } Rect areaRect = new Rect(35, 55, _areaWidht, 30); rectList = new List <Rect>(_divisionSlider.HorizontalLayoutRects(areaRect)); GUILayout.BeginArea(new Rect(3, 50, position.width - 20, 50)); GUILayout.BeginScrollView(new Vector2(_tableScrollView.x, 0), GUIStyle.none, GUIStyle.none); GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(_areaWidht), GUILayout.Height(30)); int index = 0; GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(30), GUILayout.MaxHeight(30)); GUILayout.Space(2); GUILayout.BeginVertical(); GUILayout.Space(5); if (GUILayout.Button("R", EditorGUIStyle.GetTitleButton, GUILayout.Height(20), GUILayout.ExpandWidth(true))) { _searchValue = ""; SearchTableData.Hide(); GUI.FocusControl("GUIArea"); _isSort = false; } GUILayout.EndVertical(); GUILayout.Space(2); GUILayout.EndHorizontal(); for (index = 0; index < _tableConfig.FieldList.Count; index++) { GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(rectList[index].width), GUILayout.MaxHeight(30)); string fieldName = _tableConfig.FieldList[index].Name; if (!string.IsNullOrEmpty(_tableConfig.FieldList[index].ShowName)) { fieldName += "\r\n" + _tableConfig.FieldList[index].ShowName; } GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(2); if (GUILayout.Button(fieldName, EditorGUIStyle.GetTitleButton, GUILayout.Height(25))) { //_dataList.Clear(); //_dataList.AddRange(_serializeData.DataList.OrderBy(a => a.T)); //_isSort = true; } _excelConfig.ColumnsWidth[index] = rectList[index].width; GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(EditorGUIStyle.GetGroupBoxStyle(), GUILayout.Width(rectList[index].width), GUILayout.MaxHeight(30)); GUILayout.Space(5); GUILayout.BeginVertical(); GUILayout.Space(5); GUILayout.Button("", EditorGUIStyle.GetTitleButton, GUILayout.Height(20)); GUILayout.Space(5); GUILayout.EndVertical(); GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.EndHorizontal(); GUILayout.EndScrollView(); GUILayout.EndArea(); float f = 0; if (_areaWidht > position.width) { float diff = _areaWidht - position.width + 20; f = diff * Mathf.Clamp(_tableScrollView.x / diff, 0f, 1f); } _divisionSlider.DoHorizontalSliders(areaRect, f); _divisionSlider.Resize(areaRect.width, DivisionSlider.ResizeMode.PrioritizeOuter); }