File size: 1,638 Bytes
18a519f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 | using System.Collections.Generic;
using System.Linq;
namespace Unity.PlasticSCM.Editor.UI.Tree
{
internal class TreeViewItemIds<C, I>
{
internal void Clear()
{
mCacheByCategories.Clear();
mCacheByInfo.Clear();
}
internal List<int> GetCategoryIds()
{
return new List<int>(mCacheByCategories.Values);
}
internal List<KeyValuePair<C, int>> GetCategoryItems()
{
return mCacheByCategories.ToList();
}
internal List<KeyValuePair<I, int>> GetInfoItems()
{
return mCacheByInfo.ToList();
}
internal bool TryGetCategoryItemId(C category, out int itemId)
{
return mCacheByCategories.TryGetValue(category, out itemId);
}
internal bool TryGetInfoItemId(I info, out int itemId)
{
return mCacheByInfo.TryGetValue(info, out itemId);
}
internal int AddCategoryItem(C category)
{
int itemId = GetNextItemId();
mCacheByCategories.Add(category, itemId);
return itemId;
}
internal int AddInfoItem(I info)
{
int itemId = GetNextItemId();
mCacheByInfo.Add(info, itemId);
return itemId;
}
int GetNextItemId()
{
return mCacheByCategories.Count
+ mCacheByInfo.Count
+ 1;
}
Dictionary<C, int> mCacheByCategories = new Dictionary<C, int>();
Dictionary<I, int> mCacheByInfo = new Dictionary<I, int>();
}
}
|