public void AddAd(int index, PowerNode pNode) { if (index >= 0 && index < this.Count) { _PowerList.Insert(index, pNode); } }
public PowerNode FindNode(Nodes nodes, PowerNode pNode, PowerPath pPath) { PowerNode reNode = null; foreach (PowerNode node in nodes._PowerList) { if (!string.IsNullOrEmpty(pPath.PathNode3) && node.NodeDepth == 3) { if (node.NodeValue != pPath.PathNode3) { continue; } } else if (!string.IsNullOrEmpty(pPath.PathNode2) && node.NodeDepth == 2) { if (node.NodeValue != pPath.PathNode2) { continue; } } if (node.NodeDepth == pNode.NodeDepth) { if (node.NodeText == pNode.NodeText && node.NodeValue == pNode.NodeValue) { reNode = node; break; } } else if (node.ChildNodes.Count > 0) { reNode = FindNode(node.ChildNodes, pNode, pPath); if (reNode != null) break; } } return reNode; }
public PowerNode FindNode(PowerNode pNode) { return _PNodes.FindNode(this.PNodes, pNode, new PowerPath(pNode)); }
public PowerEnum PowerList(List<ShowShop.Model.Member.Roles_Permissions> rpList) { PowerEnum pp = new PowerEnum(); int depth = 0; PowerNode pn2 = null, pn3 = null; PowerNode pn = null; bool bl2 = true, bl3 = true;//true表示有子项 foreach (ShowShop.Model.Member.Roles_Permissions rpModel in rpList) { depth = GetDepth(rpModel.OperateCode); pn = new PowerNode(rpModel.OperateCode.ToString(), rpModel.OperateCode.ToString(), depth); switch (depth) { case 1: if (pn2 != null) { pn.ParNode = pn2; pn2.ChildNodes.Add(pn);//此对象不必附加子对象,指定当前的pn2为其父对象,并添加进去 } else { bl2 = true; if (pn3 != null) { pn.ParNode = pn3;//直接把该对象附加给pn3,因为此时pn2为空 pn3.ChildNodes.Add(pn); } } break; case 2: if (bl2 && pn3 != null) { pn.ParNode = pn3; pn2 = pn;//存pn2中,子对象没有附加 bl2 = false; } else//出现新的pn2(pn3的子对象)对象.pn3还存在,但是bl2为false,因为它已附加了子对象,不管是否附加完整 { if (pn2 != null) { pn3.ChildNodes.Add(pn2);//old把已经存在的pn2附加到pn3中 } pn.ParNode = pn3;//设置新的pn2对象 pn2 = pn;//new } break; case 3: if (bl3) { pn.ParNode = null; pn3 = pn;//存于pn3实例中,子对象没有附加 bl3 = false; } else//已经为pn3附加子对象,或者为其附加了孙对象 { if (pn2 != null)//存在没有附加了pn2对象 { pn3.ChildNodes.Add(pn2); pn2 = null; bl2 = true; } pp.PNodes.Add(pn3);//把pn3附加到节点树中 pn.ParNode = null; pn3 = pn; } break; } pn = null; } if (pn3 != null && pn2 != null) { pn3.ChildNodes.Add(pn2); pn2 = null; bl2 = true; } if (pn2 != null) { pp.PNodes.Add(pn2); pn2 = null; bl2 = false; } if (pn2 == null && pn3 != null) { pp.PNodes.Add(pn3); } return pp; }
public void Add(PowerNode pNode) { _PowerList.Add(pNode); }
public PowerPath(PowerNode pNode) { _pNode = pNode; }
public void Remove(PowerNode pNode) { _PowerList.Remove(pNode); }