void AddElement(ICodeElement elem, TreeNode parent) { ICodeNamespace cns = elem as ICodeNamespace; if (cns != null && cns.ElementCount == 0) { return; } parent = parent.Nodes.Add(elem.ToString()); parent.Tag = elem; parent.ImageIndex = parent.SelectedImageIndex = ServiceHost.ImageListProvider[elem]; ICodeContainerElement icc = elem as ICodeContainerElement; if (icc != null) { foreach (ICodeElement ce in icc.Elements) { AddElement(ce, parent); } } }
void CheckElement(ICodeElement parent, TreeNode node) { ICodeContainerElement icc = parent as ICodeContainerElement; if (icc != null) { ICodeElement ice = icc[node.Text]; if (ice != null) { ICodeElement ice2 = node.Tag as ICodeElement; if (ice2 != null && ice2.Fullname == ice.Fullname) { foreach (TreeNode n in node.Nodes) { CheckElement(ice, n); } return; } } TreeNode nparent = node.Parent; node.Remove(); AddElement(ice, nparent); } }