From 82c57c382f4e909d3f12e541d08f239f7f8e78e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E5=86=A0=E5=B3=B0?= Date: Fri, 21 Feb 2025 16:54:43 +0800 Subject: [PATCH] update TableView MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 支持Counter --- .../VisualViewers/ReporterAssetListViewer.cs | 1 + .../VisualViewers/ReporterBundleListViewer.cs | 2 + .../Editor/UIElements/TableView/TableView.cs | 43 ++++++++++++------- 3 files changed, 30 insertions(+), 16 deletions(-) diff --git a/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterAssetListViewer.cs b/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterAssetListViewer.cs index c6e8fff6..0c118c43 100644 --- a/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterAssetListViewer.cs +++ b/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterAssetListViewer.cs @@ -72,6 +72,7 @@ namespace YooAsset.Editor columnStyle.Stretchable = true; columnStyle.Searchable = true; columnStyle.Sortable = true; + columnStyle.Counter = true; var column = new TableColumn("AssetPath", "Asset Path", columnStyle); column.MakeCell = () => { diff --git a/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterBundleListViewer.cs b/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterBundleListViewer.cs index 29b12842..ff38433f 100644 --- a/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterBundleListViewer.cs +++ b/Assets/YooAsset/Editor/AssetBundleReporter/VisualViewers/ReporterBundleListViewer.cs @@ -72,6 +72,7 @@ namespace YooAsset.Editor columnStyle.Stretchable = true; columnStyle.Searchable = true; columnStyle.Sortable = true; + columnStyle.Counter = true; var column = new TableColumn("BundleName", "Bundle Name", columnStyle); column.MakeCell = () => { @@ -181,6 +182,7 @@ namespace YooAsset.Editor columnStyle.Stretchable = true; columnStyle.Searchable = true; columnStyle.Sortable = true; + columnStyle.Counter = true; var column = new TableColumn("IncludeAssets", "Include Assets", columnStyle); column.MakeCell = () => { diff --git a/Assets/YooAsset/Editor/UIElements/TableView/TableView.cs b/Assets/YooAsset/Editor/UIElements/TableView/TableView.cs index af49da91..d54bf495 100644 --- a/Assets/YooAsset/Editor/UIElements/TableView/TableView.cs +++ b/Assets/YooAsset/Editor/UIElements/TableView/TableView.cs @@ -27,7 +27,7 @@ namespace YooAsset.Editor private List _sortingDatas; // 排序相关 - private string _sortingHeaderElement = string.Empty; + private string _sortingHeader; private bool _descendingSort = true; /// @@ -192,15 +192,37 @@ namespace YooAsset.Editor _listView.itemsSource = itemsSource.ToList(); _listView.Rebuild(); - // 动态设置元素数量 + // 刷新标题栏 + RefreshToobar(); + } + private void RefreshToobar() + { + // 设置为原始标题 + foreach (var column in _columns) + { + var toobarButton = _toolbar.Q(column.ElementName); + toobarButton.text = column.HeaderTitle; + } + + // 设置元素数量 foreach (var column in _columns) { if (column.ColumnStyle.Counter) { var toobarButton = GetHeaderElement(column.ElementName) as ToolbarButton; - toobarButton.text = $"{column.HeaderTitle} ({itemsSource.Count()})"; + toobarButton.text = $"{toobarButton.text} ({itemsSource.Count()})"; } } + + // 设置升降符号 + if (string.IsNullOrEmpty(_sortingHeader) == false) + { + var _toobarButton = _toolbar.Q(_sortingHeader); + if (_descendingSort) + _toobarButton.text = $"{_toobarButton.text} ↓"; + else + _toobarButton.text = $"{_toobarButton.text} ↑"; + } } /// @@ -247,9 +269,9 @@ namespace YooAsset.Editor if (clickedColumn.ColumnStyle.Sortable == false) return; - if (_sortingHeaderElement != clickedColumn.ElementName) + if (_sortingHeader != clickedColumn.ElementName) { - _sortingHeaderElement = clickedColumn.ElementName; + _sortingHeader = clickedColumn.ElementName; _descendingSort = false; } else @@ -257,17 +279,6 @@ namespace YooAsset.Editor _descendingSort = !_descendingSort; } - // 升降符号 - foreach (var column in _columns) - { - var button = _toolbar.Q(column.ElementName); - button.text = column.HeaderTitle; - } - if (_descendingSort) - toolbarBtn.text = $"{clickedColumn.HeaderTitle} ↓"; - else - toolbarBtn.text = $"{clickedColumn.HeaderTitle} ↑"; - // 升降排序 if (_descendingSort) _sortingDatas = _itemsSource.OrderByDescending(tableData => tableData.Cells[clickedColumn.ColumnIndex]).ToList();