public ItemGroup(XmlElement elem, ClassDescriptor klass) { declaringType = klass; label = elem.GetAttribute("label"); name = elem.GetAttribute("name"); XmlNodeList nodes = elem.SelectNodes("property | command | signal"); for (int i = 0; i < nodes.Count; i++) { XmlElement item = (XmlElement)nodes[i]; string refname = item.GetAttribute("ref"); if (refname != "") { if (refname.IndexOf('.') != -1) { ItemDescriptor desc = (ItemDescriptor)Registry.LookupItem(refname); items.Add(desc.Name, desc); } else { ItemDescriptor desc = (ItemDescriptor)klass[refname]; items.Add(desc.Name, desc); } continue; } ItemDescriptor idesc = klass.CreateItemDescriptor((XmlElement)item, this); if (idesc != null) { items.Add(idesc.Name, idesc); } } }