public static void UpdateShownVariables(DataUiGrid grid, NamedObjectSave instance, IElement container)
{
grid.Categories.Clear();
List<MemberCategory> categories = new List<MemberCategory>();
var defaultCategory = new MemberCategory("Variables");
defaultCategory.FontSize = 14;
categories.Add(defaultCategory);
AssetTypeInfo ati = instance.GetAssetTypeInfo();
// not sure if this is needed:
if (instance.TypedMembers.Count == 0)
{
instance.UpdateCustomProperties();
}
CreateCategoriesAndVariables(instance, container, categories, ati);
if (ati != null)
{
SortCategoriesAndMembers(ref categories, ati);
}
if (defaultCategory.Members.Count == 0)
{
categories.Remove(defaultCategory);
}
else if (categories.Count != 1)
{
defaultCategory.Name = "Other Variables";
}
if (categories.Count != 0)
{
// "Name" should be the very first property:
var nameCategory = CreateNameInstanceMember(instance);
categories.Insert(0, nameCategory);
}
SetAlternatingColors(grid, categories);
foreach(var category in categories)
{
grid.Categories.Add(category);
}
grid.Refresh();
}