/// <summary> /// 获取指定名称的上下文菜单 /// </summary> /// <param name="name">上下文菜单名称</param> /// <returns>返回正确的上下文菜单,如果不存在指定名称的上下文菜单则返回空的<see cref="PopupMenu"/>对象</returns> public object GetContentMenu(string name) { PopupMenu content = new PopupMenu(); content.Manager = barManager; if (contents.ContainsKey(name)) { AddInTree addInTree = workItem.Services.Get <AddInTree>(); if (addInTree != null) { try { AddInNode addInNode = addInTree.GetChild(name); if (addInNode != null) { addInNode.BuildChildItems(this); } } catch (Exception ex) { throw new UniframeworkException(String.Format("无法创建指定路径 \"{0} \" 的插件单元,{1}", name, ex.Message)); } } } if (contents.ContainsKey(name)) { foreach (BarItemLink link in contents[name].ItemLinks) { BarItemLink barlink = content.AddItem(link.Item); barlink.BeginGroup = link.BeginGroup; } } return(content); }
/// <summary> /// 创建指定路径下的插件节点 /// </summary> /// <param name="path">路径</param> /// <param name="caller">调用者</param> /// <param name="throwOnNotFound">如果为true,当未找到指定路径的节点时将抛出异常</param> public List <T> BuildItems <T>(object caller, string path, bool throwOnNotFound) { AddInNode node = GetChild(path, throwOnNotFound); if (node == null) { return(new List <T>()); } else { return(node.BuildChildItems <T>(caller)); } }
/// <summary> /// 创建指定路径下的插件节点列表 /// </summary> /// <param name="path">路径</param> /// <param name="caller">调用者</param> /// <param name="throwOnNotFound">未找到是否触发异常</param> /// <returns>返回创建的插件节点列表</returns> public ArrayList BuildItems(object caller, string path, bool throwOnNotFound) { AddInNode node = GetChild(path, throwOnNotFound); if (node == null) { return(new ArrayList()); } else { return(node.BuildChildItems(caller)); } }