private static void BuildParts(IUIElementAdapter parent, IEnumerable <MenuItemDescriptor> descriptors, string addInTreePath, ICommandRegister register) { //try //{ descriptors = descriptors.OrderBy(c => c.OrderNumber); foreach (MenuItemDescriptor descriptor in descriptors) { //System.Diagnostics.Debug.WriteLine(descriptor.Codon.ToString()); object uiElement = CreateMenuItemFromDescriptor(descriptor, addInTreePath, register); object uiElementCreated = parent.Add(uiElement); InitializeUIElement(descriptor, uiElementCreated); var children = descriptor.SubItems; if (children != null) { var subDescriptors = children.Cast <MenuItemDescriptor>(); if (!subDescriptors.Any()) { continue; } var uiElementAapter = GetUIElementAdapter(uiElement); BuildParts(uiElementAapter, subDescriptors, addInTreePath + "/" + descriptor.Codon.Id, register); } } //} //catch (Exception ex) //{ // throw ex; //} }
/// <summary> /// Adds an element to the site. /// </summary> /// <typeparam name="TElement">The type of the element to be added.</typeparam> /// <param name="uiElement">The element to be added.</param> /// <returns>The added element. The adapter may return a different element than was /// passed; in this case, the returned element is the new element provided by the /// adapter.</returns> public TElement Add <TElement>(TElement uiElement) { TElement element = (TElement)adapter.Add(uiElement); items.Add(element); return(element); }
private static void BuildParts(IUIElementAdapter parent, IEnumerable <NavItemDescriptor> descriptors) { foreach (NavItemDescriptor descriptor in descriptors) { object uiElement = CreateMenuItemFromDescriptor(descriptor); parent.Add(uiElement); var children = descriptor.SubItems; if (children != null) { var subDescriptors = children.Cast <NavItemDescriptor>(); if (!subDescriptors.Any()) { continue; } var uiElementAapter = GetUIElementAdapter(uiElement); BuildParts(uiElementAapter, subDescriptors); } } }