TreeIter AddNode(TreeIter parent, ReferenceNode node)
{
if (entryFilter.Text.Length > 0 && node.TypeName.IndexOf(entryFilter.Text) == -1)
{
return(TreeIter.Zero);
}
TreeIter iter;
if (parent.Equals(TreeIter.Zero))
{
iter = store.AppendValues(node, "class", node.TypeName, !node.HasReferences, node.TotalMemory.ToString("n0"), node.AverageSize.ToString("n0"), node.RefCount.ToString("n0"), "", "", "");
}
else
{
string refs = (InverseReferences ? node.RefsToParent.ToString("n0") : "");
string rootRefs = (InverseReferences ? node.RefsToRoot.ToString("n0") : "");
string rootMem = (InverseReferences ? node.RootMemory.ToString("n0") : "");
iter = store.AppendValues(parent, node, "class", node.TypeName, !node.HasReferences, node.TotalMemory.ToString("n0"), node.AverageSize.ToString("n0"), node.RefCount.ToString("n0"), refs, rootRefs, rootMem);
}
if (node.HasReferences)
{
// Add a dummy element to make the expansion icon visible
store.AppendValues(iter, null, "", "", true, "", "", "", "", "", "");
}
return(iter);
}