using System.Collections.Generic;
using System.Linq;
namespace NBF
{
public static class TabItemDataExtensions
{
///
/// 为TabItemData列表添加"全部"选项卡
///
/// 原始选项卡列表
///
/// 包含"全部"选项卡的新列表
public static void AddAllTabItem(this List tabItems, bool addListTitle = false)
{
//判断是否存在二级目录,有二级目录则只在二级目录有"全部"选项卡
if (tabItems.Any(tabItem => tabItem.Children.Count > 0))
{
foreach (var tabItemData in tabItems)
{
if (tabItemData.Children.Count > 0)
{
var allTab = new TabItemData
{
Id = 0,
Key = "All",
Icon = "All",
IsAll = true,
Items = GetAllItemsFromTabs(tabItemData.Children, addListTitle)
};
tabItemData.Children.Insert(0, allTab);
}
}
}
else
{
var allTab = new TabItemData
{
Id = 0,
Key = "All",
Icon = "All",
IsAll = true,
Items = GetAllItemsFromTabs(tabItems, addListTitle)
};
tabItems.Insert(0, allTab);
}
}
///
/// 递归获取所有选项卡中的项目(去重)
///
private static List